ASP.NET程序从IIS6移植到IIS7时出现500.22错误(转)
最可能的原因:
• 此应用程序在 system.web/httpModules 节中定义配置。
可尝试的操作:
• 将配置迁移到 system.webServer/modules 节。也可以手动这样做,或通过在命令行中使用 AppCmd 来这样做 - 例如,%SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/"。使用 AppCmd 迁移应用程序将使它能够在集成模式下工作,并能继续在经典模式下和以前版本的 IIS 上工作。
• 如果您确信可以忽略此错误,则可以通过将 system.webServer/validation@validateIntegratedModeConfiguration 设置为 false 来禁用它。
• 也可以将应用程序切换到经典模式应用程序池 - 例如,%SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"。只有在无法迁移应用程序时才这样做。
(将“Default Web Site”和“Classic .NET AppPool”设置为您的应用程序路径及应用程序池名称)
链接和更多信息集成模式是在 IIS 7.0 上运行 ASP.NET 应用程序的首选模式
{ IIS 的应用程序池根据托管管道模式分了两种类型:集成和经典两种
集成 .NET 模式下,应用程序不应在 <system.web>/<httpModules> 配置节中指定 ASP.NET 模块组件,而应使用 <system.webServer>/<modules> 配置节来加载 ASP.NET 模块组件。
经典.NET 模式 则是我们以前习惯的IIS 6 的方式,没有上述限制。}
解决方法:
方法1:在IIS7上配置应用程序池.
将程序池的模式改为“经典”之后,一切正常。
(具体方法:打开IIS,右边操作里选基本设置,应用程序池旁边点选择,选为Classic .net AppPool,就将管理模式切换为了经典模式就OK了)
方法2:在IIS7添加我们的模块(modules)
参考:http://aabs.wordpress.com/2007/11/16/ihttpmodule-not-running-after-conversion-to-iis-7-and-net-35/
方法3:修改web.config
再细了解:
IIS7的Application Pools有两种mode,一种是Integrated,一种是classic。如果使用Integrated模式,那么对自定义的httpModules和httpHandlers就要修改配置文件了,需要将他们转移到<modules>和<hanlders>节里去。
IIS7的两种模式和IIS6有什么区别?
IIS7.0 Integrated mode:asp.net的modules和handlers从<system.webServer>下的<modules>和<handlers>里读取,以前的<system.web>下的<httpModules>和<httpHandlers>配置节会被忽略,如果设置禁止验证(disabled validation),是不会产生错误的。
IIS7.0 Classic mode:与以上情况是相反的,<modules>和<handlers>会被忽略。
IIS6.0 :这个大家都不陌生了。
如果做一个可以在IIS6和IIS7的两种mode下都可以运行的配置?validateIntegratedModeConfiguration=“false”是做什么用的?有需要的朋友可以在这里查看详情。
其次,从iis6迁移到iis7上后,有些url rewrite功能可能就不好用了,下面这篇文章讲述了一个hack方法,有效的控制了staticFile handler的职责,实现了像iis6那样的工作方式。
示例代码:
<system.web>
<!-- Modules for IIS 6.0 and IIS 7.0 Classic mode -->
<httpModules>
<add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>
</httpModules>
<!-- Handlers for IIS 6.0 and IIS 7.0 Classic mode -->
<httpHandlers>
<addpath="*.myh"verb="GET"type="MyApp.MyHandler" />
</httpHandlers>
</system.web>
<system.webServer>
<!-- Modules for IIS 7.0 Integrated mode -->
<modules>
<add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>
</modules>
<!-- Handlers for IIS 7.0 Integrated mode -->
<handlers>
<addname="MyHandler"path="*.myh"verb="GET"type="MyApp.MyHandler"preCondition="integratedMode" />
</handlers> <!-- Disable detection of IIS 6.0 / Classic mode ASP.NET configuration -->
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
ASP.NET程序从IIS6移植到IIS7时出现500.22错误(转)的更多相关文章
- ASP.NET程序从IIS6移植到IIS7时出现500.22错误
最可能的原因: • 此应用程序在 system.web/httpModules 节中定义配置. 可尝试的操作: • 将配置迁移到 system.webServer/modules 节 ...
- 解决微信小程序用 SpringMVC 处理http post时请求报415错误
解决微信小程序用 SpringMVC 处理http post时请求返回415错误 写微信小程序时遇到的问题,这个坑硬是让我整了半天 wx.request请求跟ajax类似处理方法一致 小程序端请求代码 ...
- IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
公司的一个项目,环境为: .Net 4.0 + MVC3,部署在Windows Server 2003R2 IIS6.0上面运行正常, 迁移到新服务器Windows Server 2008R2,部署在 ...
- Migration of ASP.NET app from IIS6 to IIS7 (7.5)
For many of us familiar problem. You developing applications under IIS6 and you're about to move the ...
- (转)关于X64位系统IIS7下支持32位asp.net程序
最近在windows2008 x64位系统下的IIS7下部署asp.net程序. vs2005或vs2008默认的情况下是Any cpu 的也就是支持x86和x64两种系统的.可我的程序在引用了一个三 ...
- 将Web站点由IIS6迁移至IIS7
最近开始着手逐步将所有的Web站点由Win2003+IIS6迁移至64位Win2008+IIS7,基本还算顺利.这里就把相关内容整理总结一下.首先自然是要安装基本运行环境,包括iis,.net fra ...
- IIS5.1、IIS6.0、IIS7.5中安装配置MVC 3
本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装AS ...
- 部署 外网 ASP.NET程序时, IIS安全性 配置 -摘自网络
最近,和朋友们在聊及ASP.NET程序的安全性没有JAVA高,IIS(Internet Infomartion Server)的存在很多漏洞(以及新型蠕虫,例如Code Red 和Nimda),安全得 ...
- ASP.NET 程序发布详细过程
前言 ASP.NET网站的发布,无论是初学者还是高手,在程序的发布过程中或多或少会存在一些问题,譬如VS发布ASP.NET程序失败.IIS安装失败.IIS发布失败.局域网内不能访问 配置文件错误.权限 ...
随机推荐
- Windows下安装kibana
1. 下载ElasticSearch https://www.elastic.co/downloads/kibana https://www.elastic.co/downloads/past-rel ...
- Git(三):Git 使用规范流程
转:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个人 ...
- Mysql Replication 主从同步
简介: Mysql 的主从同步功能,这种解决方案是企业很常见的一种.常用于备份数据库,当客户端操作主库时,主库会产生binlog日志文件, 从库通过复制主库的binlog日志文件,然后解析成相应的 S ...
- react native android 真机调试
http://localhost:8081/index.android.bundle?platform=android 晕死,设备掉线了 C:\Users\ZHONGZHENHUA\.android\ ...
- 解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module
1 Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...
- spring+springmvc+mybatis+redis实现缓存
先搭建好redis环境 需要的jar如下: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:330 ...
- 魔法变量*args 和 **kwargs
其实并不是必须写成*args 和**kwargs. 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定. *ar ...
- scanf是怎么从标准输入读取数据的
scanf是从标准输入读取数据的 假设现在标准输入中的数据是123456 int a; 而我scanf("%d",&a); 会把123456转化为数字然后存入到a中. 如果 ...
- scala的隐式转换
摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码. 使用方式: 1. ...
- python 多继承详解-乾颐堂
1 2 3 4 5 6 7 8 9 10 class A(object): # A must be new-style class def __init__(self): prin ...