寻找薛定谔的猫

导航

 

经典模式和集成模式的区别:

  IIS7.0中的Web应用程序有两种配置形式:经典形式集成形式

  经典形式是为了与之前的版本兼容,运用ISAPI扩展来调用ASP.NET运转库,原先运转于IIS6.0下的Web应用程序迁移到IIS7.0中只需将应用程序配置成经典形式,代码根本不用修正就能够正常运转。

  集成形式是一种统一的乞求处置管道,它将ASP.NET恳求管道与IIS中心管道组合在一同,这种形式可以提供更好的性能,可以完成配置和管理的模块化,而且增加了运用托管代码模块扩展IIS时的灵敏性。假设老的Web应用程序运转于IIS7.0的集成形式下,可能需求对应用程序的web.config文件停止修正,特别是运用了完成IHttpHandler接口的自定义模块的状况。IIS7.0在同一个效劳器上可以同时支持两种形式的应用程序。

web.config文件的变化:

  system.webServer节指定了应用于web应用程序的IIS7.0设置,其父节点是configuration,该节点中能够设置的内容包括:

  当请求未包含指定资源时,Web服务器返回给客户端的默许文档(defaultDocument); 响应的紧缩设置(httpCompression) 自定义头部(httpProtocol节的customHeaders) 模块(modules) 处置程序(handlers) 。

  其中的一些设置仅适用于集成形式,而不适用于经典形式,如经典形式下运转的应用程序则疏忽web.config的system.WebServer节中指定的一切托管代码模块和处置程序,这种形式下web应用程序应该在syste.web节的httpModules和httpHandlers中定义模块和处置程序。

  如果使用集成模式,需要对<system.web>节点下自定义的httpModules 和 httpHandlers配置信息,转移到<system.webServer>节点下的<modules>和<hanlders>节里去。

以下为原“经典模式”的web.config的配置:

 <span style="font-family:Microsoft YaHei;">
   <system.web>  
    <httpModules>  
    <remove name="ScriptModule" />  
    <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
   </httpModules>  
   <httpHandlers>  
    <add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />  
    <remove path="*.asmx" verb="*" />  
     <add path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />  
     <add path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />  
     <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />  
    </httpHandlers>  
    ...........  
  </system.web></span>  

修改为“集成模式”后的web.config的配置:

<system.web>  
      ...........  
</system.web>  
<system.webServer>  
  <modules>  
   <remove name="ScriptModule" />  
   <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
  </modules>  
  <handlers>  
   <remove name="*" />  
   <add name="ScriptHandlerFactory" path="*.asmx" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
   <add name="ScriptHandlerFactoryAppServices" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
   <add name="ScriptResource" path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
   <add name="ChartImg" path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />  
  </handlers>  
</system.webServer>  

原文地址:http://blog.csdn.net/liyb5619/article/details/45499499

posted on 2017-08-01 08:36  teagueli  阅读(1224)  评论(0编辑  收藏  举报