Starts..c中的Global.asax Application_Error等价物

mft*_*t25 4 c# asp.net error-handling startup event-log

我试图在将.NET应用程序写入事件日志之前捕获错误.我已经在接受这个问题的答案中看到,这样做的方法是在Global.asax中包含一个Application_Error(或Application_OnError它说的)函数.

但是,我们现在只切换到使用Startup.cs,并且无法确定如何进行等效调用.这个问题的公认答案表明这可能是不可能的.有没有人确切知道是否有相同的方法来处理这些错误?

App*_*ere 6

通过说你已经"切换到使用Startup"我假设你的意思是使用OWIN管道.

Application_Error 仅在请求期间抛出异常时被调用,并且未被处理.

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

换句话说,您需要创建一个带有try/ catch周围调用的自定义中间件_next,然后您可以使用catch子句中的异常执行您想要的操作.

另一个StackOverlow答案显示了它是如何完成的.