首页 > 解决方案 > 如何在 CloudFoundry 上启动 .NET 控制台应用程序?

问题描述

我们正在尝试将我们应用程序中的一些 Windows 服务转换为控制台应用程序,以便我们可以将它们推送到 CF。在尝试使用示例 .net 控制台应用程序时,我收到以下错误:

2018-09-26T14:36:42.92+0530 [APP/PROC/WEB/0] ERR Error: no start command specified during staging or launch
2018-09-26T14:36:43.98+0530 [APP/PROC/WEB/0] OUT Exit status 1
2018-09-26T14:36:55.72+0530 [CELL/0] OUT Cell f80753e2-393c-411d-a662-6a49de7e44ce stopping instance a86af9f8-11f0-41ad-7f84-f518
2018-09-26T14:36:55.72+0530 [CELL/0] OUT Cell f80753e2-393c-411d-a662-6a49de7e44ce destroying container for instance a86af9f8-11f0-41ad-7f84-f518
2018-09-26T14:36:55.73+0530 [API/1] OUT Process has crashed with type: "web"
2018-09-26T14:36:55.77+0530 [API/1] OUT App instance exited with guid b9260f94-1097-4cf1-b181-a5ce1a2aa02e payload: {"instance"=>"a86af9f8-11f0-41ad-7f84-f518", "index"=>0, "cell_id"=>"f80753e2-393c-411d-a662-6a49de7e44ce", "reason"=>"CRASHED", "exit_description"=>"APP/PROC/WEB: Exited with status 1; process did not exit", "crash_count"=>2, "crash_timestamp"=>1537952815635562745, "version"=>"a53c5691-7d64-4030-82f0-91a85ead97b5"}*

我使用此命令将应用程序推送到 CF 上:

cf push CloudConsoleApp --health-check-type none -s windows2016 -b binary_buildpack --no-route

我能够推送一个 .Net 核心控制台应用程序并让它在同一个 CF 实例上运行。有人可以告诉我我在这里缺少什么吗?

标签: .netcloud-foundry

解决方案


您可以尝试几件事...

cf push CloudConsoleApp --health-check-type none -s windows2016 -b binary_buildpack --no-route

过去,您需要使用 binary_buildpack。这不再是真的,尽管你仍然可以使用它。通常,您应该hwc_buildpack在 Windows 上使用 .NET 应用程序。

试试cf push CloudConsoleApp --health-check-type none -s windows2016 --no-route -b hwc_buildpack

如果这不起作用,您仍然可以使用 binary_buildpack,但 binary_buildpack 什么也不做。它不安装任何东西,它不知道如何构建你的应用程序,它不知道如何运行你的应用程序。因此,如果 hwc_buildpack 对您不起作用,那么您还需要指定一个命令来启动您的应用程序。所以,尝试这样的事情:(cf push CloudConsoleApp --health-check-type none -s windows2016 -b binary_buildpack --no-route -c 'my_app.exe'或任何运行你的应用程序的命令)。

使用二进制 buildpack,您还需要推送已编译并准备好运行的应用程序。二进制 buildpack 什么都不做,甚至不编译您的应用程序,而 hwc_buildpack 知道更多并且可以构建您的应用程序。

希望有帮助!


推荐阅读