自定义错误重定向不起作用

时间:2015-03-05 10:55:52

标签: c# asp.net custom-error-pages

我一直在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

我缺少什么?

1 个答案:

答案 0 :(得分:1)

您为defaultRedirectredirect指定的值是您的页面,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。