我正在使用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" />
答案 0 :(得分:4)
答案 1 :(得分:0)
HttpModule肯定是要走的路。我按照这个页面开始工作
http://blog.mastykarz.nl/sharepoint-2010-page-not-found-404/
但是,该模块仅在我省略前提条件时才有效,否则您将遇到空白页。