2010-07-14 57 views
2

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

通过这个我的意思是,用户将显示一个错误页面,然后下一次用户点击该网站时,将再次触发该事件Application_Start

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

回答

3

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

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

你试图做的是非常传统;我会一起重新考虑这个方法。如果您只需要在应用程序域级别执行一次代码,则有很多更好的方法来实现它,例如静态实例或HttpRuntime缓存中的标志。请介绍Web-Garden和并发场景。

祝你好运。

+0

同意 - 最后我们找到了避免文件锁定问题的替代方法。 – 2011-05-06 19:39:17

0

我敢肯定,没有办法从应用程序中退出/强制停止webForms应用程序。但是,防止应用程序启动的一种不可取的方法是在application_start中生成未处理的错误。这将防止启动发生,并在您的webForms应用程序的下一次命中时,application_start将再次尝试。

+1

问题是,如果事件在第一次运行时抛出异常,ASP .NET将不会触发Application_Start事件。 – klashar 2010-07-31 10:29:07