2011-07-07 25 views
3

當asp.net應用程序崩潰時,有沒有辦法顯示一個良性錯誤頁面(使用web.config中的一些設置)?ASP.NET:如何使用web.config設置優雅地崩潰?

我有一個應用程序的數據庫定期更新。如果在用戶使用應用程序時更新數據庫,則應用程序通常會崩潰。如果應用程序的網頁被刷新,那麼一切都再次確定。

如何最好地處理這種情況?有沒有辦法將所有崩潰指向一個告訴用戶刷新的網頁?謝謝。

回答

5

是的,您可以定義並打開自定義錯誤頁面。

<customErrors mode="RemoteOnly" defaultRedirect="~\ErrorPages\GenericError.htm"> 
    <error statusCode="403" redirect="~\ErrorPages\NoAccess.htm" /> 
    <error statusCode="404" redirect="~\ErrorPages\PageNotFound.aspx" /> 
</customErrors> 

設置modeOn所有請求或RemoteOnly只啓用遠程請求的自定義錯誤。然後爲各種錯誤定義儘可能多的錯誤頁面。


當你更新你的應用程序,你可能會考慮放置app_offline.htm文件在你的web應用程序的根目錄。如果該文件存在,則顯示所有傳入請求。有關更多信息,請參閱http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx

+0

您的編輯包含下面發佈的完全相同的東西? –

3

最好的事情是,每當你想在一個實時網站/數據庫上做任何改變,就是把app_offline.htm文件放在應用程序文件夾中,從而取下網站。如果用戶崩潰,用戶不應該看到你的應用程序。

+0

請小心,以確保您有超過512個字節的內容 - 請參閱:http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx –

2

你也可以捕獲你的global.asax中的錯誤,它有一個錯誤處理程序,詢問那裏的錯誤(使用類似Exception ex = Server.GetLastError()的東西),如果它滿足你的任何標準尋找,將它們重定向到任何你想要的。