ASP.NET:如何使用web.config设置优雅地崩溃?

时间:2011-07-07 04:07:47

标签: .net asp.net deployment error-handling web-config

当asp.net应用崩溃时,有没有办法显示良性错误页面(使用web.config中的某些设置)?

我有一个应用程序,其数据库定期更新。如果在用户使用应用程序时更新数据库,则应用程序经常崩溃。如果应用程序的网页刷新,那么一切都会好起来。

如何最好地处理这样的情况?有没有办法将所有崩溃指向一个告诉用户只刷新的网页?感谢。

3 个答案:

答案 0 :(得分: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以启用自定义错误。然后根据需要为各种错误定义尽可能多的错误页面。


在更新应用程序时,您可以考虑在Web应用程序的根目录中放置app_offline.htm文件。如果该文件存在,则显示所有传入请求。有关详细信息,请参阅http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx

答案 1 :(得分:3)

最好的事情是,只要您想在实时网站/数据库上进行任何更改,就是通过在应用程序文件夹中放置app_offline.htm文件来删除网站。如果应用程序崩溃,用户不应该看到它。

答案 2 :(得分:2)

您还可以在global.asax中捕获错误,其中包含错误处理程序,在那里查询错误(使用类似Exception ex = Server.GetLastError()的内容)以及它是否符合您所查找的任何条件为,将它们重定向到你想要的任何东西。