【问题标题】:How to get reason for ASP.NET Core application shutting down? [duplicate]如何获取 ASP.NET Core 应用程序关闭的原因? [复制]
【发布时间】:2019-11-23 15:58:41
【问题描述】:

我已将我的 ASP.NET Core 2.2 应用程序容器化为 Docker 映像,然后将其部署到 Google Kubernetes Engine。应用程序定期启动,但时不时地随机关闭。日志没有给出关于发生了什么的特别提示,我得到的只是:

I 2019-07-11T19:36:07.692416088Z Application started. Press Ctrl+C to shut down. 
I 2019-07-11T20:03:59.679718522Z Application is shutting down...

有什么方法可以让我了解应用程序关闭的原因吗?我知道您可以在 Shutdown 上注册事件处理程序,例如:

public class Startup
{
    public void Configure(IApplicationBuilder app, IApplicationLifetime applicationLifetime)
    {
        applicationLifetime.ApplicationStopping.Register(OnShutdown);
    }

    private void OnShutdown()
    {
         //this code is called when the application stops
    }
}

但是我如何从那里提取应用程序关闭的原因?

【问题讨论】:

  • 这可能是一个明显的建议,但是打开日志详细程度怎么样?
  • 您是否为此配置了日志记录,如果有,如何配置?如果您有并且仍然没有日志,则可能是应用程序已从外部关闭,而不是应用程序异常。
  • 它可能是服务器关闭,如果应用程序处于理想状态,我们在 azure 中遇到了这个问题,我们必须启用 azure always on 选项。
  • @KrunalParmar 我正在部署到谷歌云,这是不同的问题。不幸的是,我仍然不知道如何获取关闭的原因,但至少在了解更多 GKE 的工作原理后,我猜到了问题所在。并且打开日志详细程度仍然没有给出关闭的原因。
  • @serpent5 你说了这个,但没有举个例子,你可以这样做吗。

标签: c# asp.net-core kubernetes google-kubernetes-engine asp.net-core-2.2


【解决方案1】:

问题是默认情况下我的 ASP.NET Core Web Api 项目没有处理根路径。所以/ 被健康检查击中,当它没有得到200 OK 时,GKE 应该关闭 Kubernetes pod。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 2017-01-13
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2011-03-22
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多