【发布时间】: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