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) <customError>下的<error>----相当于<system.web>中的<httpErrors>
以上三点中,如果你的程序中有自定义的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>配置项。
转载于:https://www.cnblogs.com/amylis_chen/p/5234780.html
IIS7.5下的web.config 404应该如何配置相关推荐
- 【已解决】请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记
问题 详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 标记.然后应将此 标 ...
- web.config中namespace的配置(针对页面中引用)
web.config中namespace的配置(针对页面中引用) 1,在页面中使用强类型时: @model GZUAboutModel @using Nop.Admin.Models//命名空间(注意 ...
- ASP.NET 多环境下配置文件web.config的灵活配置---转
注意:本功能在.Net Core中已经不可用,暂时需手动修改web.config中的信息,或者将其设置在appsettings.XXX.json中,然后再使用web.config中的环境变量来制定使用 ...
- web.config中的session配置详解
打开某个应用程序的配置文件Web.config后,我们会发现以下这段: < sessionState mode="InProc" stateConnectionString= ...
- web.config 中SessionState的配置 [转]
一 http://hi.baidu.com/zyb512/blog/item/28ed858b3b88c015c9fc7af9.html web Form 网页是基于HTTP的,它们没有状态, 这意味 ...
- Web.config中创建自定义配置节
Web.config文件可谓是每个ASP.NET站点必不可少的一个文件,其中记录了网站的各种配置.一些比较静态但是又可能变更的数据可以放在web.config中,已有的appSettings配置节便有 ...
- Web.config 无法识别的配置节 connectionStrings
最近在WIN2000系统下一直碰到这个问题,我知道在2003下可以选择.NET的版本,但好象2000下是不能设置的,只要装了2003 和2005就可运行. 但是现在这个问题很奇怪,于是查了下 发现以下 ...
- 使用IConfigurationSectionHandler在web.config中增加自定义配置
VS2008.ASP.NET 3.5 一. 场景 这里仅举一个简单应用的例子,我希望在web.config里面增加网站的基本信息,如:网站名称,网站版本号,是否将网站暂时关闭等. 二. 基本实现 ...
- Forms表单登陆,动态获取web.config里面的cookies配置
以前写死的写法是 1: //设置登录权限 2: HttpCookie cook; 3: 4: string roles = "admin";//用户角色 5: 6: FormsAu ...
- Linux下Apache Web服务器的安装与配置
1.Apache Web服务器简述 Web服务是目前Internet应用最流行.最受欢迎的服务之一,Linux平台使用最广泛的Web服务器是Apache,它是目前性能最优秀.最稳定的Web服务 ...
最新文章
- 激辩:机器究竟能否理解常识?
- 专家解读下一代互联网创新模式,核心技术是根本
- python 两台机器之间传递数据_Python:通过套接字在两台计算机之间发送数据
- C#基础总结之四List-Hashtable-冒泡排序
- intelli idea新建无scala class选项解决方案
- 运维自动化 第二章 openpyxl的用法,读写excel内容
- cairo-clock设置为自动启动后总是自动变为default主题
- Leetcode--136. 只出现一次的数字
- 爱情测试MySQL存储_性能测试四十:Mysql存储过程造数据
- 使用批处理设置、启动和停止服务
- 谷歌字体 Google Fonts
- [noip2011]铺地毯(carpet)解题报告
- Android - MTK系统源码结构
- 有缘-无缘-惜缘-随缘
- 什么是全球位置编号(GLN)?
- IOS界面push跳转后navigationController不显示
- 小米5S刷机认真看一眼就能会的简单详细教图文
- 解析android系统下Dex2oat的实现
- 怎么查询MySQL的安装路径?
- 黑马程序员——Java基础——网络编程1