2010-07-14 16 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

相關問題