gpt4 book ai didi

asp.net - HttpApplication.Error 之后会触发哪些 ASP.NET 生命周期事件?

转载 作者:行者123 更新时间:2023-12-02 06:45:02 24 4
gpt4 key购买 nike

我想知道通过 HttpApplication.Error 事件处理错误后,ASP.NET 请求生命周期的哪些部分发生。具体来说, http://msdn.microsoft.com/en-us/library/bb470252.aspx#Stages 列出了哪些事件错误后触发?我知道 EndRequest 仍然会触发,并且我怀疑 PreSendRequestHeaders 和 PreSendRequestContent 也会触发,但除了这些我不知道。

这是否取决于错误在生命周期中何时发生?这是否取决于我是否在错误处理程序中调用 Server.ClearError() ?

我问这个问题是因为我不知道是否应该从错误处理程序中调用 HttpApplication.CompleteRequest()。

最佳答案

最好的方法是捕获服务器上次错误应用程序域异常。

所有这些都可以在 Global.asax.cs 文件中完成。

检查以下步骤:

1- 在 Global.asax.cs 中,捕获最后一个错误并记录它。

    protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Server.ClearError();
log.Error("Application Error caught in Global ", exception);
}

2- 在 AppDomain 上添加 UnhandledException 事件的事件处理程序,这应该添加到 Application_Start 中:

    protected void Application_Start(object sender, EventArgs e)
{
//....
AppDomain.CurrentDomain.UnhandledException
+= new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}

3- 这是 CurrentDomain_UnhandledException 的实现:

    void CurrentDomain_UnhandledException(object sender, 
UnhandledExceptionEventArgs e)
{
if (e != null)
log.Error("Domain Unhandled Exception: ", e.ExceptionObject as Exception);
}

祝你编码愉快:)

关于asp.net - HttpApplication.Error 之后会触发哪些 ASP.NET 生命周期事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com