将 .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 应用程序执行您的控制台应用程序所做的一切,并托管运行状况检查端点。
我正在尝试将 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 应用程序执行您的控制台应用程序所做的一切,并托管运行状况检查端点。