我知道这是很久以前发布的,但这可能对其他人有所帮助......
我遇到了同样的问题,主要是因为路径值中有'~',遗憾的是这不是你的问题,但如果你遵循以下,那么你应该没问题......
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="401" redirect="~/Errors/Unauthorized.aspx" />
<error statusCode="403" redirect="~/Errors/Forbidden.aspx" />
<error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
<error statusCode="500" redirect="~/Errors/ServerError.aspx" />
<error statusCode="501" redirect="~/Errors/ServerError.aspx" />
</customErrors>
<httpErrors errorMode="Custom">
<remove statusCode="401" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<error statusCode="401" path="/Errors/Unauthorized.aspx" responseMode="ExecuteURL" />
<error statusCode="403" path="/Errors/Forbidden.aspx" responseMode="ExecuteURL" />
<error statusCode="404" path="/Errors/PageNotFound.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
<error statusCode="501" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
</httpErrors>
当然,您只需要为您希望为其创建自定义页面的那些状态代码添加条目。还要记住httpErrors应该放在部分,以及其中的customErrors部分。
您可以添加customErrors部分,因为它处理托管代码。httpErrors部分将处理所有内容的错误。
还请注意最后一件事...当您在本地机器上进行测试时,ASP.NET 和 HTTP 错误的默认设置是在本地浏览器上显示详细信息。您需要设置customErrors mode="On" AND httpErrors errorMode="Custom" 才能在本地计算机上查看自定义错误。
更多信息可以在这里找到:http ://www.iis.net/ConfigReference/system.webServer/httpErrors