咱俩将ASP.NET程序从IIS6移植到IIS7,只怕运营提醒以下错误:

咱俩将ASP.NET程序从IIS6移植到IIS7,可能运营指示以下错误:

咱俩将ASP.NET程序从IIS6移植到IIS7,或者运维指示以下错误:

原文出处:

HTTP 错误 500.23 – Internal Server Error

检测到在合龙的托管管道形式下不适用的 ASP.NET 设置。

HTTP 错误 500.23 – Internal Server Error

检测到在合龙的托管管道情势下不适用的 ASP.NET 设置。

HTTP 错误 500.23 – Internal Server Error

检测到在合龙的托管管道方式下不适用的 ASP.NET 设置。

原稿作者:pizibaidu

何以会并发上述错误?

缘何相会世上述错误?

干什么会出现上述错误?

初稿链接:

在IIS7的采纳程序池有三种情势,一种是“集成情势”,一种是“经典方式”。

在IIS7的使用程序池有三种方式,一种是“集成方式”,一种是“经典格局”。

在IIS7的施用程序池有三种情势,一种是“集成方式”,一种是“经典情势”。

背景:前些天公司终端上有2个功用打开那多少个,报500谬误,小编用Fiddler找到链接,然后在IE里打开,报500.23荒谬:检测到在合龙的托管管道形式下不适用的ASP.NET设置。后台是一个IIS7和tomcat7集成的条件,此处记录一下。

经文情势 则是我们原先习惯的IIS 6 的方式。

经典方式 则是大家之前习惯的IIS 6 的点子。

经文方式 则是我们原先习惯的IIS 6 的法门。

NET设置的缓解方式,检测到在合龙的托管管道格局下不适用的。HTTP
错误 500.23 –
Internal Server Error

假若利用集成情势,那么对自定义的httpModules 和 httpHandlers
就要修改配置文件,需求将他们转移到<modules>和<hanlders>节里去。

比方选拔集成情势,那么对自定义的httpModules 和 httpHandlers
就要修改配置文件,必要将她们转移到<modules>和<hanlders>节里去。

若是采用集成方式,那么对自定义的httpModules 和 httpHandlers
就要修改配置文件,须求将她们转移到<modules>和<hanlders>节里去。

检测到在合龙的托管管道情势下不适用的 ASP.NET
设置。

二种缓解办法:

二种缓解格局:

二种缓解办法:

澳门金沙国际 1

先是种方式、配置利用程序池

在IIS7上布置使用程序池,并且将程序池的格局改为“经典”,之后一切平常。如图:

澳门金沙国际 2

在检索引擎输入上面指示的荒唐新闻,搜索到的结果大约都以一贯改为“经典”便半途而返了。

但这么只是权宜之计,用了IIS7.x,但骨子里只表述了6的功能,别的,在局地ASP.NET
MVC程序中的效果也糟糕,所以,大家尝试以下化解办法:

先是种情势、配置使用程序池

在IIS7上安插利用程序池,并且将程序池的方式改为“经典”,之后一切日常。如图:

澳门金沙国际 3

在检索引擎输入下边提醒的不当新闻,搜索到的结果差点都以一贯改为“经典”便一曝十寒了。

但这么只是权宜之计,用了IIS7.x,但实在只发挥了6的功能,此外,在一些ASP.NET
MVC程序中的效果也不好,所以,大家品尝以下化解办法:

先是种格局、配置使用程序池

在IIS7上安顿使用程序池,并且将程序池的方式改为“经典”,之后一切平常。如图:

澳门金沙国际 4

在探寻引擎输入上边提醒的错误新闻,搜索到的结果大概都以一直改为“经典”便付之东流了。

但这么只是权宜之计,用了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" />  
禁止验证集成模式,来避免错误。

更多原理知识,请各位多多指点!

第2种方法、修改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" />  
禁止验证集成模式,来避免错误。

更多原理知识,请各位多多指点!

其次种办法、修改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" />  
禁止验证集成模式,来避免错误。


转自http://blog.csdn.net/a351945755/article/details/21000453

在IIS7的行使程序池有两种方式,一种是“集成情势”,一种是“经典方式”。

IIS7.0 检测到在合龙的托管管道形式下不适用的ASP.NET设置 的解决方法 (转)

 

IIS7.0 检测到在合龙的托管管道方式下不适用的ASP.NET设置 的化解办法 (转)

 

经典情势则是我们原先习惯的IIS6
的不二法门。

荒谬截图:

澳门金沙国际 5

 

修改配置截图:

澳门金沙国际 6

改为经典方式后,可能见面世了另贰个荒唐。。。如下图:

 

 

澳门金沙国际 7

 

  那么些错误是说ISAPI禁用了一点零部件,因为.NET Framework
4.0才装上,大概被IIS暗许禁止运营,所以打开设置页面,果然,叁拾几位和6二个人的ASP.NET
4.0组件都被装置为“不容许”了。

 

 

 

 

 

澳门金沙国际 8

  把多少个ASP.NET V4.0的组件允许通过,网站就能得逞运维了!

 

 

荒谬截图:

澳门金沙国际 9

 

修改配置截图:

澳门金沙国际 10

改为经典方式后,只怕会冒出了另一个谬误。。。如下图:

 

 

澳门金沙国际 11

 

  那几个荒唐是说ISAPI禁用了一点零部件,因为.NET Framework
4.0才装上,可能被IIS专擅认同禁止运维,所以打开设置页面,果然,叁十人和60位的ASP.NET
4.0组件都被装置为“不容许”了。

 

 

 

 

 

澳门金沙国际 12

  把八个ASP.NET V4.0的机件允许通过,网站就能成功运维了!

 

 

即便应用集成情势,那么对自定义的httpModules

httpHandlers 就要修改配置文件,要求将她们转移到<modules>和<hanlders>节里去。

二种缓解措施:

1)配置利用程序池

在IIS7上配备使用程序池,并且将程序池的格局改为“经典”,之后一切平常。如图:

澳门金沙国际 13

 用了IIS7.x,但实际只表明了6的职能,其余,在一部分ASP.NET
MVC程序中的效果也糟糕,所以,大家品尝以下化解措施:

2)修改web.config配置文件

注:web.config路径C:\inetpub\wwwroot\web.config

譬如说原先安装(你的环境中或然没有httpModules,httpHandlers节点)

1 <system.web>
2 ............
3 <httpModules>
4 <add name="MyModule" type="MyApp.MyModule" />
5 </httpModules>
6 <httpHandlers>
7 <add path="*.myh" verb="GET" type="MyApp.MyHandler" />
8 </httpHandlers>
9 </system.web>

在IIS7应用程序池为“集成方式”时,改为:

 1 <system.web>
 2 ...........
 3 </system.web>
 4 <system.webServer>
 5 <modules>
 6 <add name="MyModule" type="MyApp.MyModule" /> 
 7 </modules>
 8 <handlers>
 9 <add name="MyHandler" path="*.myh" verb="GET" type="MyApp.MyHandler" preCondition="integratedMode" />
10 </handlers>
11 </system.webServer>

若果你的web.config没有httpModules,httpHandlers节点,则一向在节点system.webServer中添加:<validation validateIntegratedModeConfiguration=”false”
/>,禁止验证集成格局,来幸免不当。

理所当然你也能够使用IIS7.0提供的崭新管理工具AppCmd.exe来修改web.config文件,关于AppCmd.exe的采取教程请参见:IIS7全新管理工具AppCmd.exe的授命使用实例。

IIS Log**的位置:**

澳门金沙国际 ,IIS 6.0的Log日志存储在:

c:\windows\system32\logfiles\

IIS 7 Log存储在:

%SystemDrive%\inetpub\logs\LogFiles

透过作者的测试, IIS日志是即时写入的, 不须求IIS reset.

IIS 6, 7的日记写入按不一样站点写入差距的文书夹,
地点文件夹的格式都以”w3svc{siteId}”.

IIS6里, 查看站点ID的措施是经过IIS log的文本夹的名字来明确Site ID.

IIS7中, 在IIS管理器中的advanced settings中, General里的ID就是Site ID,
然后您需求经过那个ID来定位LogFiles文件夹中哪壹个文件夹属于你要翻看的站点.

Intergrated和Classic的区别

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>配置节会被忽视,尽管设置禁止验证(disabledvalidation),是不会发生错误的。

IIS7.0 Classic
mode:

以上气象是倒转的,<modules>和<handlers>会被忽略。

 

Classic
vs Integrated

Classic
mode
(theonly mode in IIS6 and
below) is a mode where IIS only works with ISAPIextensions and ISAPI
filters directly. In fact, in this mode, Asp.net is justan ISAPI
extension (aspnet_isapi.dll) and an ISAPI
filter(aspnet_filter.dll).IIS just treats Asp.net as an external plugin
implemented in ISAPI and workswith it like a black box (and only when
it’s needs to give out the request toASP.NET). In this mode, Asp.net is
not much different from PHP or
other technologies for IIS.

经文情势是IIS6.0以及以下版本的绝无仅有工作情势(只工作在ISAPI
EXTENSION,ISAPI
FILTEOdysseyS下)。在此种情势下asp.net只是3个各自完成了ISAPIEXTENSION和ISAPI
FILTEENVISION的插件(aspnet_isapi.dll,aspnet_filter.dll),IIs的做事只是将一定的伏乞转载给Asp.net,与
PHP等等寄宿在IIS中的插件别无二致。

Integrated
mode
,on the other hand, is a new
mode in IIS7 where IIS pipeline is tightlyintegrated (i.e. is just the
same) as Asp.net request pipeline. ASP.NET cansee every request it wants
to and manipulate things along the way. ASP.NET isno longer treated as
an external plugin. It’s completely blended and integratedin IIS. In
this mode, Asp.net HttpModules basically have nearly as much poweras an
ISAPI filter would have had and Asp.net HttpHandlers can have
nearlyequivalent capability as an ISAPI extension could have. In this
mode, Asp.netis basically a part of IIS.

然则在合龙形式里,IIS的管道与Asp.net的伸手管道是紧密集成
的,Asp.net可以完全控制,访问整个请求管道。Asp.net不在作为二个表面插件,而是一心集成在IIS中。在此格局下,Asp.net
HttpModules与ISAPI Filter拥有等同的控制权,Asp.net HttpHandlers与ISAPI
Extension拥有等同控制权,换而言之Asp.net已经是IIS的一有个别了。

 借使要专职IIS6及IIS7,可在web.config中而且保留httpHandlers(for
IIS6)及handlers(for IIS7)里的一律定义,但记得要抬高<validation
validateIntegratedModeConfiguration=”false”/>,不然IIS7会因为定义重覆出现而爆发错误。

相关文章