IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
公司的一个项目,环境为: .Net 4.0 + MVC3,部署在 Windows Server 2003R2 IIS6.0上面运行正常,迁移到新服务器 Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图:
其他配置如下:
配置完成后,访问出错报错,
最后检查出了原因:该项目中的 web.config 配置文件不适合 IIS7.0。
于是将应用程序池的管道模式选择为“经典”模式
再次访问一切正常。
问题的根本原因是 IIS7.0 的机制已经发生改变,不再与 IIS6.0 一样,但是兼容 IIS6.0。
IIS7.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下正常工作。
IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置的更多相关文章
- IIS发布网站 报错500.19 错误解决过程记录
首先先报上我的环境 WindowsServer 2012 IIS 8.5 网站是FrameWork 4.0 发布网站后浏览,报错信息如下: 解决过程记录如下: 1.看到这个问题首先想到的是权限问题,设 ...
- IIS7部署网站出现500.19错误(权限不足)的解决方案
错误摘要 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理 ...
- 打开nginx配置的站点报错500
打开站点报错500的原因 有很多,这里只说明一点:nginx 的fastcgi.conf配置引起的问题 环境说明 1 站点目录结构 wwwroot website public application ...
- 部署到IIS报错:HTTP错误500.19,错误代码0x800700d
title=部署到IIS报错:HTTP错误500.19,错误代码0x800700d. 用vs直接运行网站没问题,部署到IIS就报错,由此可知应该是IIS中不支持网站相关配置. 查找发现在web.c ...
- Visual Studio 2013执行项目报错:HTTP 错误 500.22
转至:http://www.codingwhy.com/410.html 具体报错 HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ...
- ASP.NET程序从IIS6移植到IIS7时出现500.22错误
最可能的原因: • 此应用程序在 system.web/httpModules 节中定义配置. 可尝试的操作: • 将配置迁移到 system.webServer/modules 节 ...
- ASP.NET程序从IIS6移植到IIS7时出现500.22错误(转)
最可能的原因: • 此应用程序在 system.web/httpModules 节中定义配置. 可尝试的操作: • 将配置迁移到 system.webServer/modules 节.也可 ...
- maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式
maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式: 1.更改项目的jdk为我们安装的jdk2.更改build配置里的 output folder 目录为 xxx项目名/target ...
- Web Server IIS7部署网站常遇到的错误及解决办法
IIS7部署网站常遇到的错误及解决办法 经常遇到问题: 1.错误:403.14-Forbidden Web 服务器被配置为不列出此目录的内容及Login on failed for "IIS ...
随机推荐
- Razor视图基本语法
<!--Razor C#--> @for (int i = 0; i < 10; i++) { <baobao>good</baobao> } < ...
- Android 设备的CPU类型(通常称为”ABIs”)
armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备,三星 Galax ...
- 关于如何实现Android透明状态栏的总结
开门见山. 原来做的效果,如下图(顶部有一条明显的橙色状态栏): a1.gif 改过之后(顶部状态栏是透明的): p2.gif 我发现网上写的一些文章,不够简洁明了,我整理了一下,复制粘贴一下 ...
- swift 实践- 08 -- UISegmentedControl
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...
- url加密和解密
.NET中加密和解密有两种方式 string file="文件上(传)篇.doc";string Server_UrlEncode=Server.UrlEncode(file);s ...
- Ubuntu16.04安装Maven3.5.4
本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软件版本为准. 操作系统:Ubuntu 16.04.3 LTS Maven 版本:Apache Maven 3.5.4 JDK 版本:J ...
- SQL Server 数据恢复到指点时间点(完整恢复)
SQL Server 数据恢复到指点时间点(完整恢复) 高文龙关注2人评论944人阅读2017-03-20 12:57:12 SQL Server 数据恢复到指点时间点(完整恢复) 说到数据库恢复,其 ...
- Redis简介与安装
目录 Redis概述与安装使用 Redis概述与安装使用 Author:SimpleWu GitHub-redis Redis简介 Redis英语全称:( REmote DIctionary Serv ...
- CentOS 7 防火墙,端口开启命令
1. 查看已打开的端口 # netstat -anp 2. 查看想开的端口是否已开 # firewall-cmd --query-port=8003/tcp 若此提示 FirewallD is ...
- 利用map和stringstream数据流解题
题目描述 喜闻乐见A+B.读入两个用英文表示的A和B,计算它们的和并输出. 输入 第一行输入一个字符串,表示数字A:第二行输入一个字符串表示数字B.A和B均为正整数. 输出 输出一个正整数n,表示A+ ...