【问题标题】:Sharepoint 2010 custom 404 page - asp extensionSharepoint 2010 自定义 404 页面 - asp 扩展
【发布时间】:2025-12-18 16:55:01
【问题描述】:

我正在开发一个 SharePoint 2010 发布网站。它正在替换使用 asp 构建的旧网站。

由于它面向公众且匿名,因此我们正在实施自定义 404 页面。奇怪的是,这不是简单的 OOTB(像往常一样),但我确实设法部署了 404 页面并使用事件接收器将其链接起来。完美,工作正常。

因此,在测试中,我尝试输入一些不存在的随机页面。它适用于 .htm、.html 和 .aspx。接下来,我尝试了 .asp 扩展名,因为这是所有优秀书签/搜索引擎链接的基础。而不是 404 页面,我得到了一个空白页面。我在 Firebug 中检查了它,该文件实际上返回了一个 404 标头,但它没有内容。不好。

有人解决了这个问题吗?自定义 http 模块是唯一的方法吗??

顺便说一句,另一个奇怪的行为是,如果您使用未知的扩展程序,它会将 404 页面中的 html 呈现为文本! 编辑:另外,如果您输入一个不存在的无扩展名文件夹,您会得到同样的行为。哇,这奇怪的野兽一直在困扰着我。

谢谢。

更新

看起来 HttpModule 是去这里的唯一方法。我有这个工作 - 如果有人想要完整的代码,请告诉我。我会把它贴在这里,但是 SO 代码格式化程序正在处理问题。

web.config 条目如下所示:

<add name="PageNotFoundHttpModule" type="ProjectName.PageNotFoundHttpModule, ProjectName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=fb507da11a891ef3" preCondition="integratedMode" /> 

【问题讨论】:

    标签: sharepoint sharepoint-2010 http-status-code-404


    【解决方案1】:

    【讨论】:

    • 是的,我现在正在考虑这个想法。我想这是唯一的方法。非常令人震惊,真的。
    • 我在添加 web.config 条目时遇到问题 - 开始“给定的程序集名称或代码库无效。” - 你知道如何添加 HttpModule 的博客吗?谢谢。
    • 是的,我将 vs.net 解决方案部署到 GAC - 这是默认设置。我刚刚在我的解决方案中添加了一个类。不需要做任何特别的事情来将它包含在 dll 中,对吧?此外,这是在 system.webServer > 模块中进行的,因为它是集成管道。
    • 试过了,同样的错误。我只使用了根命名空间,因为这是目前命名空间中唯一的类。
    • 该死,只需要根命名空间。 IIS 管理器为我解决了这个问题。无需编译 > 程序集条目。我将使用该条目更新我的问题。感谢您的帮助。
    【解决方案2】:

    HttpModule 肯定是要走的路。我按照这个页面让它工作了

    http://blog.mastykarz.nl/sharepoint-2010-page-not-found-404/

    但是,该模块仅在我省略前提条件时才有效,否则您将进入空白页面。

    【讨论】:

      最近更新 更多