c# - Startup.cs 中的 Global.asax Application_Error 等效项

标签 c# asp.net error-handling startup event-log

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

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

最佳答案

如果您说您已“切换到使用 Startup”,我假设您的意思是使用 OWIN 管道。

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

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

换句话说,您需要围绕对 _next 的调用创建一个带有 try/catch 的自定义中间件,然后您可以在 catch 子句中做你想做的事。

This other StackOverlow answer展示了它是如何完成的。

关于c# - Startup.cs 中的 Global.asax Application_Error 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659307/

相关文章:

c# - 在数据表中添加标签

ASP.NET MVC3 @Html.EditorFor 复选框禁用启用

c# - try-finally 中的 Response.Redirect()

bash - 如何在 macOS/Linux bash 中验证 jq 1.5 中的查询?

c# - 如何使用 max(id) 作为 sql ce 中的搜索条件?

c# - 将 WinForms WebBrowser 控件作为 NETWORK_SERVICE 运行

rest - Powershell正在吞噬REST错误响应

sql - Powershell : invoke-sqlcmd catching errors when using -InputFile instead of -Query

c# - 从 C# 访问 Firefox

ASP.NET MVC Core 找不到匹配命令 "dotnet-bundle"的可执行文件