【问题标题】:What is equivalent of HostingEnvironment.ShutdownReason in ASP.NET Core?ASP.NET Core 中的 HostingEnvironment.ShutdownReason 是什么?
【发布时间】:2017-01-16 16:43:41
【问题描述】:

在旧的 ASP.NET 中,我可以通过查看 HostingEnvironment.ShutdownReason 来判断我的应用停止的原因。

在 ASP.NET Core 中,这不存在。我在哪里可以获得这些信息?

【问题讨论】:

  • 你在什么情况下运行这个?您是否尝试在 c# 中启动另一个进程?知道 dotnet core 中的所有 AppDomain 功能都已被删除(故意)
  • 不明白你的意思?我需要这些信息,以便记录我的应用离线的原因。
  • @JoelHarkes 在 pre-Core ASP.NET 中,我可以通过查看此属性来判断应用程序为何死亡(应用程序池回收、共享主机配置、未处理的错误、用户请求等)。你是说 Core 的功能性较差?
  • @grokky 尚未在 ASP.NET Core 中实现,我不确定它是否会实现。现在有了红隼,情况就不同了,github.com/aspnet/KestrelHttpServer/…

标签: c# asp.net asp.net-core


【解决方案1】:

在 ASP.NET Core 中没有关闭原因。好消息是,由于新的托管模型,应用程序现在死机的原因比以前少了很多

【讨论】:

  • 感谢您的明确答复。问题在于共享主机,开发人员依靠该信息来确定我们的应用程序崩溃的原因,或者主机手动/自动脱机的原因。我知道新的托管模式有所不同,但这会让我们许多人的生活变得非常复杂。大多数托管商都不愿意提供日志或任何建议,因此我们需要这些信息来了解我们的应用程序是否需要更多内存、更多空间、更多处理能力、应用程序池是否过载、启动时崩溃等等。我们现在什么都不知道。 许多人使用共享主机。
  • ...可以说(?),大多数,我们中的很多人使用共享主机。大多数网站/应用程序都是小型/中型的,并且在共享托管环境中运行。以后如果你们能研究一下这个问题,那就太好了。我们中的大多数人永远不会在 Azure 中运行,因此我们需要从主机到我们的应用程序的反馈循环。
  • 不会改变应用程序因较少原因而死亡的事实。可以说,不是崩溃的唯一原因是应用程序池重置。如果你能给我一个具体的场景来说明原因,我可以告诉你这是否适用于 ASP.NET 核心应用程序。
  • 这里有一些HostingEnvironment.ShutdownReasons,如果我们有办法访问它们,它们仍然适用于 .NET 6 1) web.config 中的更改,2) 托管环境关闭应用程序, 3) 达到空闲时间限制,4) 对应用程序的物理路径进行了更改。也可能是这个,不确定:Max Recompilations Reached。由于上述仍然与 .NET 6 相关的原因,如果有办法了解托管环境关闭的原因肯定会很好。
猜你喜欢
  • 1970-01-01
  • 2017-07-24
  • 2018-08-30
  • 2018-01-16
  • 2019-02-12
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多