【问题标题】:Page 404 in IIS 7.5 with Intergrated Pipeline, fine with Classic pipeline带有集成管道的 IIS 7.5 中的页面 404,适用于经典管道
【发布时间】:2026-01-15 02:20:03
【问题描述】:

我在 IIS 7.5 下运行 sitecore 6.4,但遇到以下 URL 问题: http://www.thegreensheet.com/Classifieds/MERCHANDISE/Animals%20Pets%20and%20More.aspx?Id=3191212&city=Houston

基本上,当 IIS 处于经典模式时,布局呈现正常,但如果我将其更改为集成,我会得到一个 IIS 404 页面。真正奇怪的是,如果从本地服务器本身浏览,它既适用于经典版,也适用于集成版。在集成模式下,我们所有其他项目/布局在 IIS 7.5 中都可以正常工作。 httpHandlers和handlers标签下的所有handler都在里面……我真的很茫然……

谢谢, 詹姆斯

【问题讨论】:

    标签: asp.net iis web-applications iis-7.5 sitecore


    【解决方案1】:

    问题是页面错误地将响应状态码设置为 404。在经典模式下,IIS 会渲染页面内容并将状态设置为 404。在集成模式下,它将状态码设置为404,但呈现 IIS 404 页面。我通过查看 IIS 日志并使用 firefox 实时查看响应代码找到了它。对不起,如果我浪费了任何人的时间。 -詹姆斯

    【讨论】:

    • 你没有浪费任何人的时间。您找到了解决方案并将其发布为他人的利益。下一个遇到同样问题的人会知道如何解决它。
    • 感谢分享解决方案,这确实不是在浪费时间。
    【解决方案2】:

    如果你添加这个

        Response.TrySkipIisCustomErrors = true;
    

    设置前

        Response.StatusCode = 404;
    

    然后 Sitecore 将能够处理错误并仍然返回 404 状态代码。

    这是因为 Windows 2008 服务器正在运行 IIS 7.5,如果页面返回 HTTP 错误状态代码(例如 404 或 500),默认情况下,该页面将使用其默认错误页面覆盖 HTTP 响应。

    【讨论】: