将 .NET Core 控制台应用程序部署到 PCF

Deploy a .NET Core Console app to PCF

我正在尝试将 dotnet 核心控制台应用程序部署到 PCF,它似乎部署得很好,但健康检查无法尝试访问位于 http://0.0.0.0:${PORT} 的应用程序。由于它是一个控制台应用程序,因此它没有 HTTP 端点。在应用信息中我可以看到:

Start Command: dotnet dotnet-app.dll --server.urls http://0.0.0.0:${PORT}

默认情况下,它希望该应用程序是一个网络应用程序。有没有办法使用 pcf 的控制台应用程序设置来部署它?

buildpack 是:

Buildpack: ASP.NET Core (buildpack-1.0.4)

我想知道是否有纯 .NET Core buildpack。

您是否尝试过将 'no-route' 添加到您的清单文件中?

这将阻止 pcf 尝试绑定端口。

no-route: true

您可能还需要禁用健康检查:

cf set-health-check APP_NAME none

我将清单中的运行状况检查更改为 health-check-type: process 并且成功了。

但是,进行进程运行状况检查在诊断问题时会增加一些价值,但这并不理想。后来,与同事交谈,他们建议将应用程序托管为 WepApi 应用程序,这样如果进程挂起,http 运行状况检查将在尝试访问端点时检测到它。

由于 WebApi 应用程序在 .net 核心中自托管,更好的解决方案是让 WebApi 应用程序执行您的控制台应用程序所做的一切,并托管运行状况检查端点。