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



这很有效,并根据需要重定向到yahoo.com:

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

事实并非如此,不同的是,我在应用程序中指定了一个页面,而不是一个外部URL:

<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中。

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

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

最新更新