当asp.net应用崩溃时,有没有办法显示良性错误页面(使用web.config中的某些设置)?
我有一个应用程序,其数据库定期更新。如果在用户使用应用程序时更新数据库,则应用程序经常崩溃。如果应用程序的网页刷新,那么一切都会好起来。
如何最好地处理这样的情况?有没有办法将所有崩溃指向一个告诉用户只刷新的网页?感谢。
答案 0 :(得分:5)
是的,您可以定义并启用自定义错误页面。
<customErrors mode="RemoteOnly" defaultRedirect="~\ErrorPages\GenericError.htm">
<error statusCode="403" redirect="~\ErrorPages\NoAccess.htm" />
<error statusCode="404" redirect="~\ErrorPages\PageNotFound.aspx" />
</customErrors>
为所有请求设置mode
为On
,或仅为远程请求设置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()的内容)以及它是否符合您所查找的任何条件为,将它们重定向到你想要的任何东西。