【发布时间】:2012-05-15 12:36:47
【问题描述】:
您好 Stackoverflow 上的杰出人士,我想知道在 ASP.Net C# 中,应用程序是否会在发生错误或触发 Application_Error 时结束?根据我的理解,不应该,我只是想加倍确定
【问题讨论】:
-
SO 的第一天!!!你读过这篇stackoverflow.com/faq吗??
您好 Stackoverflow 上的杰出人士,我想知道在 ASP.Net C# 中,应用程序是否会在发生错误或触发 Application_Error 时结束?根据我的理解,不应该,我只是想加倍确定
【问题讨论】:
通常,如果与请求关联的线程中发生异常,则会触发 Application_Error 事件,如果未处理,则会向客户端返回 HTTP 500 错误。
但是,与请求无关的线程中未处理的异常将关闭工作进程(换句话说,杀死您的应用程序)。即使您通过 Application_Error 方法设置了处理程序,也会发生这种情况。 MSDN Link for Exception in Managed Threads了解更多详情
【讨论】:
如果您不处理异常,很可能会将您带到 HTTP 500 错误页面。
应用程序本身不会“结束”,因为它是一个 Web 应用程序。任何重新进入该网站都可能会开始一个新的会话。
【讨论】:
不,不会。 Application_End 与托管 IIS 进程 (w3wp.exe) 正常终止一起触发。正常终止的最可能原因是 IIS 像定期间隔那样回收进程。
【讨论】:
不,当发生未处理的异常时不会触发 application_end 事件。 Application_Error 将被触发。
通常,Application_End 在应用程序池被回收或重新启动 IIS 时触发。
【讨论】: