IIS集成和经典配置
我们将ASP.NET程序从IIS6移植到IIS7,可能执行提示下面错误:
HTTP 错误 500.23 - Internal Server Error
检測到在集成的托管管道模式下不适用的 ASP.NET 设置。
为什么会出现以上错误?
在IIS7的应用程序池有两种模式。一种是“集成模式”。一种是“经典模式”。
经典模式 则是我们曾经习惯的IIS 6 的方式。
假设使用集成模式,那么对自己定义的httpModules 和 httpHandlers 就要改动配置文件。须要将他们转移到<modules>和<hanlders>节里去。
两种解决方法:
第一种方法:配置应用程序池
在IIS7上配置应用程序池。而且将程序池的模式改为“经典”,之后一切正常。如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWl0NTIw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
在搜索引擎输入上面提示的错误消息,搜索到的结果差点儿都是直接改为“经典”便浅尝辄止了。
但这样仅仅是权宜之计,用了IIS7.x,但实际仅仅发挥了6的功能。另外,在一些ASP.NET MVC程序中的效果也不好,所以,我们尝试下面解决方法:
另外一种方法:改动web.config配置文件:
比如原先设置(你的环境中可能没有httpModules,httpHandlers节点)
<system.web>
............
<httpModules>
<add name="MyModule" type="MyApp.MyModule" />
</httpModules>
<httpHandlers>
<add path="*.myh" verb="GET" type="MyApp.MyHandler" />
</httpHandlers>
</system.web>
在IIS7应用程序池为“集成模式”时。改为:
<system.web>
...........
</system.web>
<system.webServer>
<modules>
<add name="MyModule" type="MyApp.MyModule" />
</modules>
<handlers>
<add name="MyHandler" path="*.myh" verb="GET" type="MyApp.MyHandler" preCondition="integratedMode" />
</handlers>
</system.webServer>
(假设你的web.config没有httpModules,httpHandlers节点。则直接在节点system.webServer中加入:
<validation validateIntegratedModeConfiguration="false" />
这样能够禁止验证集成模式,避免错误提示。
经典模式(classic mode)VS 集成模式(Integrated mode)
在经典模式下,IIS会用ISAPI扩展(ISAPI extension aspnet_isapi.dll)和 ISAPI过滤器(ISAPI filter aspnet_filter.dll)来调用ASP.NET执行库来处理请求。假设使用经典模式的话,server会用两种管道来处理请求一个负责源码,另外一个负责托管代码。在这样的模式下,应用程序不能充分使用IIS7.X提供的服务。
在集成模式下。ASP.NET从IIS插件(IIS extension)的角色进入了IIS的核心去监測每一个请求和操作。在集成模式下,ASP.NET能更有效的在IIS下执行,而且能够有效的提高站点的性能。 有些在IIS6开发的代码须要执行于经典模式。由于在集成模式下会出现错误信息。
IIS集成和经典配置的更多相关文章
- asp.net web.config 经典模式和集成模式相关配置
<?xml version="1.0"?> <configuration> <!--IIS经典模式下使用--> <system.web&g ...
- IIS的集成和经典模式的区别
集成和经典的区别: 1.集成模式集成通用映射,而经典模式必须添加DLL才可以使用通用映射,存在通用映射才可以拦截 2.集成模式是IIS7.0以上,经典模式是IIS6.0以下
- IIS7应用程序池集成和经典的区别
IIS7应用程序池集成和经典的区别 IIS7应用程序池有集成和经典两种模式,根据微软官方的介绍, 集成模式,如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ASP.NET ...
- IIS7应用程序池集成和经典的区别 对IIS7经典模式和集成模式的理解 程序池经典和集成的区别
IIS7应用程序池集成和经典的区别 IIS7应用程序池集成和经典的区别 IIS7应用程序池有集成和经典两种模式,根据微软官方的介绍, 集成模式,如果托管应用程序在采用集成模式的应用程序池中运行,服 ...
- 一次面试留下的实际应用问题。关于HttpModule,IIS集成模式。
资料来自<IIS7开发与管理完全手册> 周五面试时有点紧张,没能静下心思考,当时隐约想到这个解决方案,但因面试环境和心态确未能明确的表述. 回家的地铁上已经找到解决办法. 要点:1基于IH ...
- Owin Middleware如何在IIS集成管道中执行
Owin Middleware Components(OMCs) 通过安装Install-Package Microsoft.Owin.Host.SystemWeb 可以让OMCs在IIS集成管道下工 ...
- [转帖]IIS内虚拟站点配置信息说明
web.config配置详细说明 https://www.cnblogs.com/zhangxiaolei521/p/5600607.html 原作者总结的很详细 但是没有完全的看完 自己对IIS 的 ...
- Reporting Service服务SharePoint集成模式安装配置(3、4、安装sharepoint 2010必备组件及产品)
Reporting Service服务SharePoint集成模式安装配置 第三步和第四部 第三步 安装sharepoint 2010必备组件 1.安装SharePoint2010必备组件,执行Pre ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
随机推荐
- shell编程, 100文钱买100只鸡, 简单实现
今天碰到一个有趣的问题: 群友用shell写的一个: #!/bin/bash # 百元买百鸡,每种鸡至少买一只 all= # 公鸡每只多少元 read -p '公鸡多少文一只: ' gongji # ...
- Vrtualbox虚拟机中共享文件夹配置
虚拟机装的是ubuntu 16.0.4版本的linux,本机是macOs 10.12.1版本 Vrtualbox进行如下配置 在Vrtualbox-->设置-->共享文件夹-->添加 ...
- 解决css兼容性
关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HA ...
- 紫书 例题 10-2 UVa 12169 (暴力枚举)
就是暴力枚举a, b然后和题目给的数据比较就ok了. 刘汝佳这道题的讲解有点迷,书上讲有x1和a可以算出x2, 但是很明显x2 = (a * x1 +b) 没有b怎么算x2?然后我就思考了很久,最后去 ...
- Visual Studio 2013 无法创建MVC项目,系统找不到指定的文件.(Exception from HRESULT:08x0070002)
在Visual Studio 2013中创建新MVC项目,(PS:现在创建个MVC项目,差点都找不到在哪,汗!-) 确定后提示,系统找不到指定的文件.(Exception from HRESULT:0 ...
- dll签名两种方法
以下两种签名方法,都是对csp.dll签名,都不是CA颁发的,且效果不同, 一:通过自建证书签名 下载windows sdk,成功安装后,包括makecert.exe, cert2spc.exe, p ...
- 生成apk文件遇到的编译问题error: format not a string literal and no format arguments
编译错误时使用的android-ndk为r9的版本号.报下面错误: "Compile++ thumb : cocosdenshion_static <= SimpleAudioEngi ...
- less14 颜色函数2
less div{ // hue()色相值 z-index: hue(hsl(90,100%,50%)); //90 ////saturation()饱和度 z-index: saturation(h ...
- [NOIP2015模拟10.22] 最大子矩阵 解题报告(单调栈)
Description 我们将矩阵A中位于第i行第j列的元素记作A[i,j].一个矩阵A是酷的仅当它满足下面的条件: A[1,1]+A[r,s]<=A[1,s]+A[r,1](r,s ...
- Mvc前后端显示不同的404错误页
最近做的系统前端是移动端的,后端是PC端,然后404页面不能用通一个,so 查找了一些资料,找到了一个解决办法 在Global.asax文件夹下添加Application_EndRequest事件处 ...