【问题标题】:ASP.NET Core MVC Health Check failingASP.NET Core MVC 健康检查失败
【发布时间】:2017-06-09 10:29:36
【问题描述】:

我尝试在 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 或其他东西才能启动并运行它?

感谢您的努力

【问题讨论】:

标签: asp.net asp.net-mvc asp.net-core-mvc nuget-package swisscomdev


【解决方案1】:

默认情况下,Cloud Foundry 通过尝试连接到应用程序暴露的端口来进行健康检查。

如果您的应用程序没有公开任何端口(例如,它不是具有 API 等的 Web 服务),那么您应该将 health-check-type 属性添加到 none,如 here 所述。

如果在那之后您仍然遇到错误,那么我建议您找到您的应用程序正在侦听给定端口的位置。在 Cloud Foundry 中,您必须收听 $PORT,这是一个环境变量。您可以查看 here 的示例。

【讨论】:

    【解决方案2】:

    正如 gsmachado 已经提到的,你必须监听一个特定的端口。

    .NET Core buildpack 会自动配置应用程序 Web 服务器,因此您不必自己处理。但是您必须以允许 buildpack 通过命令行将此信息传递给您的应用的方式来准备您的应用。

    buildpack 将使用以下命令启动您的应用程序:

    $ 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();
    

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 1970-01-01
      • 2020-12-18
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      相关资源
      最近更新 更多