检測到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。


我们将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核心管道组合在一起。

在集成模式下。ASP.NET从IIS插件(IIS extension)的角色进入了IIS的核心去监測每一个请求和操作。在集成模式下,ASP.NET能更有效的在IIS下执行,而且能够有效的提高站点的性能。 有些在IIS6开发的代码须要执行于经典模式。由于在集成模式下会出现错误信息。

 
要想更有效的使用IIS7提供的服务, 建议将站点放在集成模式下,然后依据错误信息的提示解决那个问题。


最新文章

  1. Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法
  2. vtk第一个程序
  3. 20145308刘昊阳 《Java程序设计》第3周学习总结
  4. 在线学习体验大PK 云智慧发布在线教育网站性能监测报告
  5. Json Null 不输出
  6. linux printk函数学习
  7. Lucene学习总结之四:Lucene索引过程分析
  8. python3 模拟登录网站
  9. Swift - 类的计算属性(使用get和set来间接获取/改变其他属性的值)
  10. nefu 1191 平行宇宙 (bfs)
  11. 每一个Servlet只有一个实例,多个线程
  12. SQL语句使用时间和日期的函数
  13. .9-Vue源码之AST(5)
  14. setState的参数接收函数
  15. 洛谷P1360 [USACO07MAR]黄金阵容均衡题解
  16. centos php 运行环境搭建
  17. 网络编程_UDP协议_聊天程序
  18. CF232C Doe Graphs
  19. (转)Xen Server删除Local Storage
  20. 【xsy1201】 随机游走 高斯消元

热门文章

  1. No mapping found for HTTP request with URI [/spring_liu/hello.do] in DispatcherServlet with name &#39;SpringMVC&#39;
  2. Ubuntu PPA 使用指南
  3. 图层Layers的介绍
  4. [HAOI2016]找相同字符(SAM+DP)
  5. unity 调用 .dll 或 .so时遇到的问题
  6. weblogic 生产模式和开发模式的互相转换
  7. 移植u-boot-2014.4到S5PV210/TQ210(完整)
  8. 更改linux文件的拥有者及用户组(chown和chgrp)
  9. CIKM 2013 Paper CQARank: Jointly Model Topics and Expertise in Community Question Answering
  10. Excel操作之VLOOKUP