Application_Start中的间歇性异常 - 如何取消启动应用程序?

时间:2010-07-14 12:55:37

标签: asp.net exception application-start

在我们的Application_Start事件处理程序中,我们正在执行一些由于文件锁定问题而间歇性失败的操作。在这种情况下,我们希望将应用程序返回到“未启动”状态。

我的意思是,用户将看到一个错误页面,然后当用户下次访问该网站时,Application_Start事件将再次被触发。

我们正在使用ASP.NET 3.5,WebForms和MVC。

2 个答案:

答案 0 :(得分:3)

AppDomain.Unload提供您正在寻找的内容,但我不会推荐它。

有很多渔获量;以编程方式拆除应用程序域并非没有自己的一组问题(例如,如果线程在本机代码中被阻止,您可能会看到 CannotUnloadAppDomainException )并且通常是一个糟糕的设计,IMO。

你要做的事情是非常传统的;我会一起重新考虑这种方法。如果您只需要在应用程序域级别执行一次代码,则有许多更好的方法可以执行此操作,例如静态或HttpRuntime缓存中的标志。请注意网络花园和并发场景。

祝你好运。

答案 1 :(得分:0)

我很确定无法从应用程序中退出/强制停止webForms应用程序。但是,阻止应用程序启动的一种方法是在application_start中生成未处理的错误。这将阻止启动发生,并且在下次点击您的webForms应用程序时,application_start将再次尝试。