ASP.NET httpHandlers&处理器

时间:2015-06-15 04:34:11

标签: asp.net asp.net-mvc

我对system.web中的httpHandlers和system.webServer中的处理程序感到困惑。这两种配置有什么区别?以及如何以及何时使用它们?

实际上另一个问题也适用于模块:system.web中的httpModule和system.webServer中的模块

2 个答案:

答案 0 :(得分:5)

Web.config文件中的system.webServer部分指定应用于Web应用程序的IIS 7.0的设置。 system.WebServer是配置节的子节点。有关详细信息,请参阅IIS 7.0:system.webServer节组(IIS设置架构)。

<system.web>指定ASP.NET配置部分的根元素,并包含配置ASP.NET Web应用程序和控制应用程序行为方式的配置元素。 httpHandlers&amp; handlers是一样的。

要为IIS 6.0注册HTTP处理程序,请使用:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="SampleHandler.new" 
        type="SampleHandler, SampleHandlerAssembly" />
    </httpHandlers>
  </system.web>
</configuration>

要为IIS 7.0注册HTTP处理程序,请使用:

<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="SampleHandler.new" 
        type="SampleHandler, SampleHandlerAssembly" />
    </httpHandlers>
  </system.web>
  <system.webServer>
    <add name=SampleHandler" verb="*" path="SampleHandler.new" 
      Modules="IsapiModule" 
      scriptProcessor="FrameworkPath\aspnet_isapi.dll"
      resourceType="File" />
  </system.webServer>
</configuration>

了解更多Here

答案 1 :(得分:1)

<system.web>是asp.net的配置部分,传统上你可以在这里定义你的httpHandlers和httpModules。

随着IIS 7(2007)的推出,Web服务器和asp.net得到了更加集成,并引入了全新的IIS配置系统。

作为此项的一部分,处理程序和模块定义的位置已移至<system.webServer>

如果您仍在使用IIS6(停止它)或在IIS7 +中使用经典管道模式,则需要在<system.web>下使用您的定义,如果您在IIS7 +中使用集成管道模式,请将它们放在<system.webServer>下。你不应该在两个部分都有它们。