【发布时间】:2021-10-14 07:33:22
【问题描述】:
我正在开发一个将在 Kubernetes 中运行的应用程序。 Kubernetes 依靠应用程序来了解它是否健康。
所以,我需要知道何时抛出了严重异常。 “Critical”是指内存不足、堆栈溢出等。这意味着容器应该被杀死。
我在 ASP.Net Core 中看到允许您在发生异常时显示错误页面的东西,但我需要 UI 和 Web API 应用程序都发生这种情况。而且我真的不希望它与我的 UI 交互(在那些有 UI 的人上)。
在 ASP.Net Core 应用程序中引发异常时是否会引发事件(或类似事件)?
【问题讨论】:
-
您在 .NET 中根本无法捕获
OutOfMemoryException或StackOverflowException。他们只是当场杀死你的程序,即使你有错误处理。 -
@Alejandro - 我认为你在
OutOfMemoryException中可能是错误的。我有一个在容器中运行的 ASP.Net Core Web API 应用程序,我将其设置为具有消耗内存的操作。该操作需要几次调用来消耗所有内存。在我打了几个电话之后,它会抛出OutOfMemoryException。但其他(低内存)操作继续正常工作。但是检查显示容器没有死,并且继续保留内存。 (另一个电话会引发另一个OutOfMemoryException。) -
Alejandro 对 StackOverflowException 的看法绝对正确。但我同意 Vaccano 的观点,我至少能够处理 OutOfMemoryException 到记录它的地步。
标签: c# asp.net-core asp.net-core-3.1