【问题标题】:Intermittant exception in Application_Start - how do I un-start the application?Application_Start 中的间歇性异常 - 你如何启动应用程序?
【发布时间】:2010-07-14 12:55:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: asp.net exception application-start


    【解决方案1】:

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

    有很多捕获;以编程方式拆除应用程序域并非没有其自身的一系列问题(即,如果线程在本机代码中被阻塞,您可能会看到 CannotUnloadAppDomainException)并且通常是糟糕的设计,IMO。

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

    祝你好运。

    【讨论】:

    • 同意 - 最后我们找到了一种避免文件锁定问题的替代方法。
    【解决方案2】:

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

    【讨论】:

    • 问题是,如果 Application_Start 事件在第一次运行时引发异常,ASP .NET 将不会触发该事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多