2011-05-03 101 views
15

... Application_Start方法是否会再次运行以用于下一个请求?如果在Application_Start中引发未处理的异常,会发生什么情况?

是否依赖于ASP.NET版本,托管服务器版本和/或其他方面?

我想,以确定它是否加载关键组件存在或不是一件好事。例如数据访问程序集对于整个应用程序的运行与否都至关重要。未能加载这样的程序集会导致后续请求无用。

+0

您处理错误 - 我在启动时加载所有关键程序集,但也会在加载的其他关键点再次检查它们,以防启动时无法加载 – Aristos 2011-05-03 23:05:32

回答

9

的Application_Start将只有一次每个Web应用程序被解雇所以你的情况,一开始不会再对后续请求发生。

通常情况下,我宁愿把一次启动代码中的try-catch中的应用开始,如果有异常则设置全局错误标志。在每个BeginRequest中,检查该标志,如果设置了该标志,用户将被重定向到一个自定义错误页面,指示该站点已关闭,请联系管理员。

+0

“设置全局错误标志” - 什么是全局错误标志? – Alex 2011-07-24 17:54:44

+1

@Alex,它是简单的global.asax中的私有静态布尔变量,在出现错误时会在'application_start'中设置。在'BeginRequest'中,检查标志是否在应用程序启动时出现错误,如果是,则重定向到错误页面。 – VinayC 2011-07-25 05:03:33

+0

啊,现在我明白了。以为你使用ASP.NET中的标志构建。谢谢! – Alex 2011-07-25 19:48:28

相关问题