我在ASP.NET网站上设置了自定义错误页面.
有一个错误没有显示自定义错误页面,只显示通常的黄色ASP.NET错误页面.如果启用了自定义错误,则会显示“服务器错误/应用程序”/“运行时错误”,但如果自定义错误已关闭,则会显示“viewstate mac Failed验证失败”错误.
我的web.config的相关部分是:
<system.web> <compilation debug="false" targetFramework="4.0" /> <customErrors mode="On" redirectMode="ResponseRewrite"> <error statusCode="404" redirect="/404.aspx" /> <error statusCode="500" redirect="/500.aspx" /> </customErrors> <system.webServer> <httpErrors errorMode="DetailedLocalOnly" />
要捕获此错误,我是否必须使用不同的状态代码或子代码或者还有其他什么?
NB. Server 2008 R2,IIS 7.
解决方法
经过进一步研究后,我发现这意味着IIS正在显示错误而不是ASP.NET.
我更改了web.config的system.webServer部分,因此IIS也可以使用自定义错误页面并解决了问题.
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="500" subStatusCode="-1" responseMode="ExecuteURL" path="/500.aspx" /> </httpErrors>