使用.NET ASPX应用程序中的ExecuteURL自定义错误页面无法正常工作(重定向工作正常)

时间:2014-10-09 20:19:09

标签: c# asp.net error-handling webforms web-config

这可行,并根据需要重定向到yahoo.com:

<httpErrors errorMode="Custom">
  <remove statusCode="401" subStatusCode="-1" />      
  <error statusCode="401" path="http://www.yahoo.com" responseMode="Redirect" />
</httpErrors>   

这不是,不同之处在于我在我的应用中指定了一个页面而不是外部网址:

<httpErrors errorMode="Custom">
  <remove statusCode="401" subStatusCode="-1" />      
  <error statusCode="401" path="/ErrorPages/401.aspx" responseMode="ExecuteURL" />
</httpErrors>   

我在屏幕上看到的错误是:

XML Parsing Error: no element found
Location: http://localhost/app/MyPage.aspx
Line Number 1, Column 1:

此错误的状态代码(通过Firebug看到)是403.当我使用浏览器实际浏览到/app/ErrorPages/401.aspx时,我看到错误页面就好了。

我正在使用Visual Studio 2012,通过VS将应用程序部署在IIS7中作为虚拟目录。

我查看了所有可用的文档。知道我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果您正在使用虚拟目录,则需要在path属性中包含虚拟目录路径(如果它不是绝对URI)。