<authentication mode="Forms"> <forms loginUrl="/" /> </authentication>
我之前的customErrors设置如下:
<customErrors mode="On" defaultRedirect="/ServerError"> <error statusCode="404" redirect="/NotFound" /> </customErrors>
我切换到IISExpress时删除了这个customErrors元素.现在404不再重定向到我漂亮的“NotFound”页面了.
用于我的网站的AppPool是Clr4IntegratedAppPool,它让我知道它不使用Classic.
为什么IISExpress如此依赖system.web而IIS 7.5使用system.webServer?
解决方法
>将existingResponse更改为PassThrough,如here所示
< httpErrors errorMode =“Custom”existingResponse =“Replace”>
不!
>如评论here中所述,设置TrySkipIisCustomErrors = false
Notta!
我最终通过简单地将existingResponse更改为Replace来使其工作.
>谁知道!
这就是system.webServer现在的样子:
<httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="/NotFound" responseMode="ExecuteURL" /> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="500" path="/ServerError" responseMode="ExecuteURL" /> </httpErrors>
为什么这个解决方案没有任何意义
Replace – This value make custom error module to always replace the
error information with text generated by custom error module. If
existingResponse is set to “Replace”,errors/exceptions generated by
Asp.Net/WCF are replaced by IIS7 errors.
http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx