我尝试在Swisscom Appcloud上运行一个ASP.NET Core MVC Web应用程序。但当我启动应用程序时,我在控制台中收到以下错误消息:
2017-01-24 14:29:53 [CELL/0] ERR Timed out after 1m0s: health check never passed. 看起来Appcloud无法检查我的应用程序的运行状况。我是否需要安装Nuget-Package或其他什么来启动和运行它?
感谢您的努力
发布于 2017-01-26 02:46:39
正如gsmachado已经提到的,您必须侦听特定的端口。
.NET核心构建包自动配置应用程序web服务器,因此您不必亲自处理。但您必须准备您的应用程序,以允许构建包通过命令行将此信息传递到您的应用程序。
构建包将使用以下命令启动您的应用程序:
$ dotnet run --server.urls http://0.0.0.0:${PORT}
因此,您必须添加命令行作为配置提供程序,然后添加UseConfiguration扩展以将配置传递给WebHostBuilder
例如:
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();发布于 2017-01-24 23:46:39
默认情况下,Cloud Foundry通过尝试连接到应用程序公开的端口来进行健康检查。
如果您的应用程序没有公开任何端口(例如,它不是具有API等的web服务),那么您应该将health-check-type属性添加到none,如here所述。
如果之后您仍然收到错误,那么我建议您找出您的应用程序正在侦听给定端口的位置。在Cloud Foundry中,您必须监听$PORT,这是一个环境变量。您可以查看该here的示例。
https://stackoverflow.com/questions/41831327
复制相似问题