2011-05-03 102 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

相關問題