HTTP状态码404表示文件不存在(Not Found),是网站中比较常见的一种错误。一般网站管理员或程序开发者都会对这个错误页进行自定义以提高用户体验。本文介绍的是通过Bing API来自定义404错误页。
要使用Bing API首先得有一个Windows Live ID,没有的可以到https://signup.live.com/注册。还需要一个AppID,如果没有可以到http://cn.bing.com/developers/createapp.aspx获取(需要Windows Live ID登陆)。
有了AppID后到http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=deca3e03-4f93-46d1-affc-493c0e02eb63&lc=2052下载Bing API Web Page Error Toolkit。下载来的是一个压缩包,内含2个文件夹。如果普通的使用只需要Deploy文件夹下的文件即可,WebErrorToolkit文件夹下有一个UserGuide.docx文件也值得一看,上面有比较完整地写了如何利用IIS来自定义404错误页。作为开发人员,可能更希望将自定义错误页直接集成进自己的项目。
首先将Error.aspx文件添加到项目中来,可以直接将该文件拖到Visual Studio的Solution Explorer也可以通过右键点项目名称然后选择Add Existing Item来添加。不一定要在根目录,也可以放在子文件夹中。然后右键该项目的References文件夹选择Add reference将压缩包Deploy\bin文件夹中的WebErrorToolkit.dll文件添加进来。
完成这两步以后将Deploy文件夹下的Web.config.merge文件与原来的Web.config文件的内容进行合并。其中<applicationSettings>节中的信息需要仔细设置,在UserGuide.docx文件的第8和第9页可找到详细说明。这里讲几个常用的。Market节设置成zh-CN可以使搜索结果只返回中文信息。IncludedDomains表示只在这些域下搜索,与当前域名无关。AppID就填前文中申请到的AppID。
这样,主要的步骤就已经完成了的。如果之前配置都正确,将这个项目部署在IIS7或以上版本的集成模式中应该是可以正常工作的,如果是IIS6及以下版本或IIS7的经典模式,可能就无法达到预期的效果了。这是由于在.net处理该请求前IIS已经将找不到文件的信息返回给客户端了,这只能在IIS上做设置,设置方法参见UserGuide的第5页或在“应用程序配置”对话框“映射”节中将要自定义404页面的扩展名进行编辑,可执行文件填写C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,目的是将其交由asp.net处理,同时取消勾选“确认文件是否存在”,一般只设置html、htm、aspx等扩展名。
如要要修改404页面的外观可直接修改Error.aspx文件。
如果要在404错误页中直接显示与用户请求有关的搜索结果,请参见UserGuide.docx文件第9、10页的Keyword Extraction Customization节。
WebErrorToolkit文件夹里有该项目的相关代码文件,可以自己做相应修改,修改完以后发布该项目,发布后的内容与Deploy文件夹的内容类似,可用上面的方法集成到自己的项目。
要使用Bing API首先得有一个Windows Live ID,没有的可以到https://signup.live.com/注册。还需要一个AppID,如果没有可以到http://cn.bing.com/developers/createapp.aspx获取(需要Windows Live ID登陆)。
有了AppID后到http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=deca3e03-4f93-46d1-affc-493c0e02eb63&lc=2052下载Bing API Web Page Error Toolkit。下载来的是一个压缩包,内含2个文件夹。如果普通的使用只需要Deploy文件夹下的文件即可,WebErrorToolkit文件夹下有一个UserGuide.docx文件也值得一看,上面有比较完整地写了如何利用IIS来自定义404错误页。作为开发人员,可能更希望将自定义错误页直接集成进自己的项目。
首先将Error.aspx文件添加到项目中来,可以直接将该文件拖到Visual Studio的Solution Explorer也可以通过右键点项目名称然后选择Add Existing Item来添加。不一定要在根目录,也可以放在子文件夹中。然后右键该项目的References文件夹选择Add reference将压缩包Deploy\bin文件夹中的WebErrorToolkit.dll文件添加进来。
完成这两步以后将Deploy文件夹下的Web.config.merge文件与原来的Web.config文件的内容进行合并。其中<applicationSettings>节中的信息需要仔细设置,在UserGuide.docx文件的第8和第9页可找到详细说明。这里讲几个常用的。Market节设置成zh-CN可以使搜索结果只返回中文信息。IncludedDomains表示只在这些域下搜索,与当前域名无关。AppID就填前文中申请到的AppID。
这样,主要的步骤就已经完成了的。如果之前配置都正确,将这个项目部署在IIS7或以上版本的集成模式中应该是可以正常工作的,如果是IIS6及以下版本或IIS7的经典模式,可能就无法达到预期的效果了。这是由于在.net处理该请求前IIS已经将找不到文件的信息返回给客户端了,这只能在IIS上做设置,设置方法参见UserGuide的第5页或在“应用程序配置”对话框“映射”节中将要自定义404页面的扩展名进行编辑,可执行文件填写C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,目的是将其交由asp.net处理,同时取消勾选“确认文件是否存在”,一般只设置html、htm、aspx等扩展名。
如要要修改404页面的外观可直接修改Error.aspx文件。
如果要在404错误页中直接显示与用户请求有关的搜索结果,请参见UserGuide.docx文件第9、10页的Keyword Extraction Customization节。
WebErrorToolkit文件夹里有该项目的相关代码文件,可以自己做相应修改,修改完以后发布该项目,发布后的内容与Deploy文件夹的内容类似,可用上面的方法集成到自己的项目。
分类:
ASP.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述