【问题标题】:In ASP.Net C# would the Application end when and error occurs on the site or when Application_Error is triggered在 ASP.Net C# 中,应用程序会在站点上发生错误或触发 Application_Error 时结束
【发布时间】:2012-05-15 12:36:47
【问题描述】:

您好 Stackoverflow 上的杰出人士,我想知道在 ASP.Net C# 中,应用程序是否会在发生错误或触发 Application_Error 时结束?根据我的理解,不应该,我只是想加倍确定

【问题讨论】:

标签: c# asp.net


【解决方案1】:

通常,如果与请求关联的线程中发生异常,则会触发 Application_Error 事件,如果未处理,则会向客户端返回 HTTP 500 错误。

但是,与请求无关的线程中未处理的异常将关闭工作进程(换句话说,杀死您的应用程序)。即使您通过 Application_Error 方法设置了处理程序,也会发生这种情况。 MSDN Link for Exception in Managed Threads了解更多详情

【讨论】:

    【解决方案2】:

    如果您不处理异常,很可能会将您带到 HTTP 500 错误页面。

    应用程序本身不会“结束”,因为它是一个 Web 应用程序。任何重新进入该网站都可能会开始一个新的会话。

    【讨论】:

      【解决方案3】:

      不,不会。 Application_End 与托管 IIS 进程 (w3wp.exe) 正常终止一起触发。正常终止的最可能原因是 IIS 像定期间隔那样回收进程。

      【讨论】:

        【解决方案4】:

        不,当发生未处理的异常时不会触发 application_end 事件。 Application_Error 将被触发。

        通常,Application_End 在应用程序池被回收或重新启动 IIS 时触发。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-17
          • 2011-08-02
          • 1970-01-01
          相关资源
          最近更新 更多