关于IIS7.5下的web.config 404 配置的一些问题
本文介绍一个关于IIS环境下web.config配置的经验问题。在IIS7.5中添加配置404页面时遇到了一些问题,记录如下:
一开始在<customError>下的<error>节点配置404不起作用,由于程序运行在IIS7.5集成模式下,经过MSDN和GOOGLE,
发现需要在<system.webServer>节点中配置,
我们知道<system.web>节点是iis7.0之前版本的主要配置节点,由于在II7.0以后IIS管
道处理与ASP.NET管道处理进行了集成,这样提高了ASP.NET的处理性能,具体这方面的资料请GOOGLE,问题随之而来,新增加的
<system.webServer>节点中需要进行哪些修改以程序在IIS7的集成模式下能完全生效呢,主要包含以下几个方面:
(1) <modules> -----相当于<system.web>中的<httpModules>
(2) <handlers> -----相当于<system.web>中的<httpHandlers>
(3)<httpErrors> ----相当于<system.web>中的<customError>下的<error>
以上三点中,如果你的程序中有自定义的httpModules或者httpHandlers的话,那么第一点和第二点非常重要,具体资料请MSDN
明白了这些,配置也就不难了,如下:
<httpErrors errorMode="DetailedLocalOnly"> <remove statusCode="404"/> <error statusCode="404" path="/404.htm" responseMode="ExecuteURL"/> </httpErrors>
补充说明:
errorMode有三个值,分别为Custom、DetailedLocalOnly、Detailed,
意思为对用户与服务器端始终显示自定义页面、只能服务器端显示详细出错信息、对用户与服务器端始终显示详细出错信息。
responseMode有File、ExecuteUrl、Redirect三个层,
分别表示使用服务器端静态文件、可执行的URL、URL转向。
要注意:<httpErrors>与<customErrors>是不同的,前者主要用于处理http相关的错误信息,而后者主要是处理应用程序级的错误页转向
附<customErrors>的一些细节说明:
同样,如果Application_Error和<customerErrors>同时存在,也存在执行顺序的问题。
因为优先级Application_Error事件> <customErrors>配置项,
所以发生应用程序级错误时,优先执行Application_Error事件中的代码,
如果Application_Error事件中调用了Server.ClearError()函数,
<customerErrors>配置节中的defaultRedirect不起作用,因为Exception已经被清除;
如果Application_Error事件中没用调用了Server.ClearError()函数,
错误页会重新定位到defaultRedict指定的URL页面,为用户显示友好出错信息。
通过对.NET提供的以上四种错误处理机制的分析,我们可以把它们从不同的角度分类,便于我们理解和使用。
1.从功能上分类:
用于异常处理(Handling exceptions)是Page_Error事件和Application_Error事件;
用户错误页面重定向(Redirecting the user to an error page)的是 ErrorPage属性 和 <customErrors>配置项。
2.从错误处理的范围分类:
用于页面级(Page level)错误处理的是Page_Error事件 和 ErrorPage属性;
用于应用程序级(Application level)错误处理的是Application_Error事件 和 <customErrors>配置项。
希望本文能对使用IIS7.0及IIS7.5的朋友们有帮助:)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2014-02-28 CSS3中的transform变形
2014-02-28 兼容IE与firefox火狐的回车事件(js与jquery)