Global.asax Application_Error 相当于 Startup.cs

Global.asax Application_Error equivalent in Startup.cs

我试图在我的 .NET 应用程序中捕获错误,然后再将它们写入事件日志。我在 this 问题的公认答案中看到,这样做的方法是在 Global.asax 中包含一个 Application_Error(或 Application_OnError 它说的)函数。

但是,我们现在才切换到使用 Startup.cs,无法弄清楚如何进行等效调用。 this 问题的公认答案表明这可能是不可能的。有谁知道是否有等效的方法来处理这些错误?

如果您说 "switched to using Startup",我假设您的意思是使用 OWIN 管道。

Application_Error 仅在请求期间抛出异常且未处理时调用。

因此 OWIN 管道中的等效项是在 OWIN 管道的开头捕获任何未处理的异常。

换句话说,您需要在对 _next 的调用周围创建一个带有 try/catch 的自定义中间件,然后您就可以做任何您想做的事情,除了例外在 catch 子句中。

展示了它是如何完成的。