我们正在运行一个在EPiServer (CMS5 R2,最新版本)和ASP.NET 3.5中运行的站点,该站点运行在IIS7上,我们已经构建了一个自定义错误处理程序,它利用URLRewriter-- EPiServer的功能来处理404和301状态代码,一切都在本地工作(Windows 7+ IIS7.5),但我们只是无法在活动服务器(Windows2008Server+ IIS7)上运行404个页面。301-重定向工作,但是对于404页,我们只得到默认的IIS7消息:
由于预定义的301-重定向工作(我们需要重定向到新站点的旧站点的URL),这个处理程序显然会被触发,但是对于404 IIS7,它只是用它的默认消息来替换它们。
404处理程序的工作方式是将内部重定向到页面/Pages/Error404.aspx,它以适当的语言显示一个很好的自定义404页,并通过Response.StatusCode = 404;将自己的状态代码设置为404--我从一个站点获得了将TrySkipIisCustomErrors变量更改为true的提示,即Response.TrySkipIisCustomErrors = true;,但这也没有帮助。
我发现本地dev计算机与服务器之间唯一的配置差异是,本地计算机有一个名为".NET错误页“的配置设置,称为”错误页“,而活动服务器 only 的设置名为”错误页“,并且缺少.NET错误页配置对话框,但我没有找到将.NET错误页配置对话框添加到服务器的方法,它是否是IIS7.5特定的?
我已经挖了一天的大部分时间,只是找不到一个似乎有效的解决办法,所以我转到这里。
编辑:本地开发版本和活动版本具有相同的web.config的设置等(显然,数据库连接字符串除外)
发布于 2009-10-12 09:24:00
好的,所以我解决了,问题是将errorMode设置为“详细”。
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>如果是自定义的,则IIS7 7错误处理程序将拦截返回404的所有页面,并将响应切换出去。
https://stackoverflow.com/questions/1553451
复制相似问题