IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
2014-08-08 15:22
239 查看
2014-08-08
公司的一个项目,环境为: .Net 4.0 + MVC3,部署在Windows Server 2003R2 IIS6.0上面运行正常,
迁移到新服务器Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图:
其他配置如下:
配置完成后,访问出错报错,
最后检查出了原因:该项目中的web.config配置文件不适合IIS7.0。
于是将应用程序池的管道模式选择为“经典”模式
再次访问一切正常。
问题的根本原因是IIS7.0的机制已经发生改变,不再与II6一样,但是兼容IIS6.0。
IIS 7.0对配置文件进行了一些修改,Web开发人员可以使用这些修改内容。例如,<system.webServer>节就是这样一项修改,
无论是经典模式还是集成模式都可以识别<system.webServer>节,同时,<system.webServer>节既可以在applicationHost.config文件中设置,也可以在web.config文件中设置。
<system.webServer>节既可以控制静态页面,也可以控制动态页面。即使在经典模式中,<system.webServer>节也具有重要作用,它可以帮助Web开发人员在web.config文件中设置不同的IIS配置。
在集成模式中,HTTP模块和HTTP处理程序不再定义于<system.web>中,而是定义于<system.webServer>中。如果在集成模式中运行一个包括了HTTP模块或HTTP处理程序的web.config文件,那么将会发生失效。幸运的是,微软公司已经详细规定了一个编号为500.22的错误信息,这个错误信息说明了如何一步步地迁移web.config文件。
利用AppCmd.exe工具,可以轻而易举地完成文件的迁移工作。为了在Default Web Site上迁移web.config文件,可以执行以下AppCmd.exe命令:
AppCmd.exe migrate config "Default Web Site/"
下面是一个web.config文件的例子,这个例子可以在IIS 6.0的经典模式下工作:
AppCmd.exe migrate config命令运行结束后,web.config文件将被更新为以下内容:
注意,web.config文件中仍然保留了httpModules节,其目的在于向后兼容,但是,在system.webServer中,modules节则处于优先的地位。
validateIntegratedMode Configuration属性可以确保IIS不会因为存在遗留的<httpModules>节而产生问题。
集成管道模式是默认的管道模式,具有一些比较重要的优势。我们需要做的就是迁移定义了HTTP处理程序和HTTP模块的所有web.config文件,从而确保其能够在IIS 7.0下正常工作。
本篇完。
……
公司的一个项目,环境为: .Net 4.0 + MVC3,部署在Windows Server 2003R2 IIS6.0上面运行正常,
迁移到新服务器Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图:
其他配置如下:
配置完成后,访问出错报错,
最后检查出了原因:该项目中的web.config配置文件不适合IIS7.0。
于是将应用程序池的管道模式选择为“经典”模式
再次访问一切正常。
问题的根本原因是IIS7.0的机制已经发生改变,不再与II6一样,但是兼容IIS6.0。
IIS 7.0对配置文件进行了一些修改,Web开发人员可以使用这些修改内容。例如,<system.webServer>节就是这样一项修改,
无论是经典模式还是集成模式都可以识别<system.webServer>节,同时,<system.webServer>节既可以在applicationHost.config文件中设置,也可以在web.config文件中设置。
<system.webServer>节既可以控制静态页面,也可以控制动态页面。即使在经典模式中,<system.webServer>节也具有重要作用,它可以帮助Web开发人员在web.config文件中设置不同的IIS配置。
在集成模式中,HTTP模块和HTTP处理程序不再定义于<system.web>中,而是定义于<system.webServer>中。如果在集成模式中运行一个包括了HTTP模块或HTTP处理程序的web.config文件,那么将会发生失效。幸运的是,微软公司已经详细规定了一个编号为500.22的错误信息,这个错误信息说明了如何一步步地迁移web.config文件。
利用AppCmd.exe工具,可以轻而易举地完成文件的迁移工作。为了在Default Web Site上迁移web.config文件,可以执行以下AppCmd.exe命令:
AppCmd.exe migrate config "Default Web Site/"
下面是一个web.config文件的例子,这个例子可以在IIS 6.0的经典模式下工作:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <httpModules> <add type="classname, assemblyname" name="modulename" /> </httpModules> </system.web> </configuration>
AppCmd.exe migrate config命令运行结束后,web.config文件将被更新为以下内容:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <httpModules> <add type="classname,assemblyname" name="modulename" /> </httpModules> </system.web> <system.webServer> <modules> <add name="modulename" type="classname, assemblyname" preCondition="managedHandler" /> </modules> <validation validateIntegratedModeConfiguration="false" /> </system.webServer> </configuration>
注意,web.config文件中仍然保留了httpModules节,其目的在于向后兼容,但是,在system.webServer中,modules节则处于优先的地位。
validateIntegratedMode Configuration属性可以确保IIS不会因为存在遗留的<httpModules>节而产生问题。
集成管道模式是默认的管道模式,具有一些比较重要的优势。我们需要做的就是迁移定义了HTTP处理程序和HTTP模块的所有web.config文件,从而确保其能够在IIS 7.0下正常工作。
本篇完。
技术研究方向:专注于Web(Mvc)开发框架、WinForm开发框架、项目(代码)自动化生成器、ORM等技术研究与开发应用 企业级项目经验:编务管理系统、印前管理系统、印务管理系统、图书销售管理系统、图书发行管理系统、图书馆管理系统、 数据交换平台、ERP综合管理平台 欢迎转载,请注明文章出处与链接信息。 如果文章对您有帮助,请帮忙推荐,谢谢! 撰写人:张传宁 http://www.cnblogs.com/SavionZhang |
相关文章推荐
- HTTP错误500.22 检测到在集成的托管管道模式下不适用的ASP.NET设置
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- HTTP 错误 500.22 - Internal Server Error检测到在集成的托管管道模式下不适用的 ASP.NET 设置
- HTTP 错误 500.22 - Internal Server Error检测到在集成的托管管道模式下不适用的 ASP.NET 设置
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。(解决办法)
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置
- HTTP 错误 500.22 - Internal Server Error检测到在集成的托管管道模式下不适用的 ASP.NET 设置
- IIS7中配置asp.net出现“检测到在集成的托管管道模式下不适用的ASP.NET设置”问题(已解决)
- HTTP错误500.22 检测到在集成的托管管道模式ixan不适用的ASP.NET设置
- HTTP错误500.22 检测到在集成的托管管道模式下不适用的ASP.NET设置
- 检测到在集成的托管管道模式下不适用的 ASP.NET 设置, HTTP 错误 500.23 解决方案
- HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- IIS报HTTP 错误 500.24,检测到在集成的托管管道模式下不适用的ASP.NET设置
- HTTP 错误 500.24 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- 【配置】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。
- HTTP错误 500.23-Internal Server Error 检测到在集成的托管管道模式下不适用的ASP.NET设置
- 在配置win7 IIS浏览网站时 检测到在集成的托管管道模式下不适用的ASP.NET设置 的解决方法
- HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- HTTP错误500.22 检测到在集成的托管管道模式下不适用的ASP.NET设置