我对system.web
中的httpHandlers和system.webServer
中的处理程序感到困惑。这两种配置有什么区别?以及如何以及何时使用它们?
实际上另一个问题也适用于模块:system.web
中的httpModule和system.webServer
中的模块
答案 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>
下。你不应该在两个部分都有它们。