1

我不断遇到设置自定义错误页面的网络示例,人们会这样做:

<customErrors mode="RemoteOnly" defaultRedirect="GeneralError.aspx">
    <error statusCode="401.2" redirect="4012Error.htm"/>
</customErrors>

我知道 401.2 重定向有它自己的一组令人头疼的问题,但 IIS 并没有抱怨这一点。当我浏览我的网站时,这是它给我的:

解析器错误消息:无法解析属性“statusCode”的值。错误是:401.2 不是 Int32 的有效值。

如果我将其更改为“401”,它工作正常。甚至 Intellisense 也抱怨 statusCode 需要是 Int32。

人们如何使用子代码?我肯定不能!

非常感谢!

4

1 回答 1

0

来自http://msdn.microsoft.com/en-us/library/aa478979.aspx

默认情况下,Windows 下的基本身份验证将允许对正确的用户名和密码组合进行三次尝试。如果这三个都失败,它将发送 HTTP 401.2 Unauthorized 错误。由于基本身份验证由 IIS 而不是 ASP.NET 执行,因此您无法创建自定义错误页面,因为 ASP.NET 将永远没有机会看到请求。

您可以在 global.asax 文件中放置一些代码来捕获这些类型的错误吗?您只需要注意 global.asax 文件会在每个页面请求上执行,因此请确保在访问默认页面和登录页面之前进行有效检查以防止重定向。

您也可以只进入 IIS 并将默认错误页面更改为指向您的 URL 以针对您的网站出现此错误。

于 2009-09-02T23:53:06.287 回答