Sharepoint 2010自定义404页-asp扩展

Sharepoint 2010自定义404页-asp扩展,sharepoint,sharepoint-2010,http-status-code-404,Sharepoint,Sharepoint 2010,Http Status Code 404,我正在SharePoint 2010发布网站上工作。它正在替换使用asp构建的旧站点 由于它面向公众且匿名,我们正在实现一个自定义404页面。奇怪的是,这不是一个简单的OOTB(像往常一样),但我确实成功地部署了一个404页面,并使用事件接收器将其链接起来。很好,很好用 所以,在测试中,我尝试输入一些不存在的随机页面。它在.htm、.html和.aspx中运行良好。接下来,我尝试了.asp扩展,因为这是所有优秀书签/搜索引擎链接的基础。我得到的不是404页,而是空白页。我在Firebug中检查了

我正在SharePoint 2010发布网站上工作。它正在替换使用asp构建的旧站点

由于它面向公众且匿名,我们正在实现一个自定义404页面。奇怪的是,这不是一个简单的OOTB(像往常一样),但我确实成功地部署了一个404页面,并使用事件接收器将其链接起来。很好,很好用

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

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

另外,另一个奇怪的行为是,如果您使用未知的扩展,它会将404页面中的html呈现为文本编辑:此外,如果您输入的是一个不存在的无扩展文件夹,则会出现相同的行为。哇,这个奇怪的怪兽一直在困扰着我

谢谢

更新

看来HttpModule是唯一的方法。我有这个工作-如果有人想完整的代码让我知道。我想把它贴在这里,但所谓的代码格式化程序把事情弄糟了

web.config条目如下所示:

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

HttpModule无疑是一条路要走。我按照这一页来让它工作


但是,只有在我省略了前提条件的情况下,该模块才能工作,否则您将遇到一个空白页。

HttpModule确实是一个不错的选择。我按照这一页来让它工作


但是,只有在我省略了前提条件的情况下,该模块才会起作用,否则您将进入空白页。

是的,我正在研究这个想法。我想这是唯一的办法。非常令人震惊,真的。我在添加web.config条目时遇到问题-gettin“给定的程序集名称或代码库无效”-你知道关于如何添加HttpModule的博客吗?谢谢。是的,我在GAC上部署了vs.net解决方案-这是默认的。我刚刚在解决方案中添加了一个类。不需要做任何特殊的事情就可以将其包含在dll中,对吗?另外,这是在system.webServer>模块中进行的,因为它是集成的管道。尝试过了,同样的错误。我只使用了根名称空间,因为这是目前名称空间中唯一的类。该死,只需要根名称空间。IIS管理员帮我解决了这个问题。不需要“编译”>“程序集”条目。我将使用该条目更新我的问题。谢谢你的帮助。是的,我正在研究这个想法。我想这是唯一的办法。非常令人震惊,真的。我在添加web.config条目时遇到问题-gettin“给定的程序集名称或代码库无效”-你知道关于如何添加HttpModule的博客吗?谢谢。是的,我在GAC上部署了vs.net解决方案-这是默认的。我刚刚在解决方案中添加了一个类。不需要做任何特殊的事情就可以将其包含在dll中,对吗?另外,这是在system.webServer>模块中进行的,因为它是集成的管道。尝试过了,同样的错误。我只使用了根名称空间,因为这是目前名称空间中唯一的类。该死,只需要根名称空间。IIS管理员帮我解决了这个问题。不需要“编译”>“程序集”条目。我将使用该条目更新我的问题。谢谢你的帮助。