我一直在asp.net应用程序中使用自定义错误重定向页面。以下是我的web.config代码
<customErrors mode="On"
defaultRedirect="DefaultRedirectErrorPage.aspx">
<error statusCode="404" redirect="Http404ErrorPage.aspx"/>
</customErrors>
DefaultRedirectErrorPage.aspx
存在于根文件夹中,即MyWebsite/DefaultRedirectErrorPage.aspx
当应用程序的根文件夹中的页面发生异常时,它可以正常工作,例如MyWebsite/Default.aspx
但是当在不在根文件夹上的页面发生异常时,例如MyWebsite/UserControls/MyUserControl.ascx
,它就会失败
无法找到页面MyWebsite\UserControls\DefaultRedirectErrorPage.aspx
我缺少什么?
答案 0 :(得分:1)
您为defaultRedirect
和redirect
指定的值是您的页面,asp.net将在导致错误的页面的当前目录中查找。您可以使用~/
从根目录开始,而不管导致错误的页面路径。
<customErrors mode="On"
defaultRedirect="~/DefaultRedirectErrorPage.aspx">
<error statusCode="404" redirect="~/Http404ErrorPage.aspx"/>
</customErrors>
<强> defaultRedirect 强>
网址可以是绝对的(例如,www.contoso.com / ErrorPage.htm) 或亲戚。相对URL(例如/ErrorPage.htm)是相对的 指定此属性的URL的Web.config文件,而不是 发生错误的网页。以波浪号开头的网址 (〜),例如〜/ ErrorPage.htm,表示指定的URL是 相对于应用程序的根路径,MSDN。