惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - SAL

【转】WinForm窗体显示和窗体间传值 【转】Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化 常用的几种OCR方法/组件小结(C#) URL重写html后Html文件打不开解决办法 【转】SQL SERVER 2005/2008 中关于架构的理解 Visual Studio、.net framework、CLR与JDK、JRE、JVM、Eclipse 【转】让Entity Framework不再私闯sys.databases 【转】MVC Model建模及Entity Framework Power Tool使用 【转】NuGet学习笔记 【转】一点一点学ASP.NET之基础概念——HttpModule 【转】如何在ASP.NET 2.0中定制Expression Builders 【转】C#微信公众平台开发者模式开启代码 【转】合理的布局,绚丽的样式,谈谈Winform程序的界面设计 【转】winform程序textbox滚动条保持在最下面 内容不闪烁 【转】C#中的委托,匿名方法和Lambda表达式 【转】HttpWebRequest 保持session 【转】WCF 服务第一次调用慢的问题 【转】“无法从http://XXX/XXX.svc?wsdl获取元数据”错误的解决方法 【转】开源Word读写组件DocX介绍与入门
【转】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。
SAL · 2013-09-21 · via 博客园 - SAL

Posted on 2013-09-21 11:42  SAL  阅读(357)  评论()    收藏  举报

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


  我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误:

  HTTP 错误 500.23 - Internal Server Error

  检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

  为什么会出现以上错误?

  在IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“经典模式”。

  经典模式 则是我们以前习惯的IIS 6 的方式。

  如果使用集成模式,那么对自定义的httpModules 和 httpHandlers 就要修改配置文件,需要将他们转移到<modules>和<hanlders>节里去。

  两种解决方法:

  第一种方法:配置应用程序池

  在IIS7上配置应用程序池,并且将程序池的模式改为“经典”,之后一切正常。如图:

在搜索引擎输入上面提示的错误消息,搜索到的结果几乎都是直接改为“经典”便浅尝辄止了。

但这样只是权宜之计,用了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运行库来处理请求。如果使用经典模式的话,服务器会用两种管道来处理请求一个负责源代码,另外一个负责托管代码。在这种模式下,应用程序不能充分使用IIS7.X提供的服务。

集成模式是一种统一的请求处理管道,它将ASP.NET请求管道与IIS核心管道组合在一起。在集成模式下,ASP.NET从IIS插件(IIS extension)的角色进入了IIS的核心去监测每个请求和操作。在集成模式下,ASP.NET能更有效的在IIS下运行,并且可以有效的提高网站的性能。 有些在IIS6开发的代码需要运行于经典模式,因为在集成模式下会出现错误信息。

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