<system.web>和<system.webServer>之间的区别?

dan*_*ine 194 asp.net iis-7 web-config

每次我必须使用IIS7为ASP.NET添加处理程序或模块时,指令总是告诉我将它合并为两个部分:system.websystem.webserver.

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>
Run Code Online (Sandbox Code Playgroud)

还有这个:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

这两个部分有什么区别?

此外,如果我不将它添加到该system.web部分,我的Visual Studio 2008调试器也无法正常工作.

Chr*_*ris 156

system.web部分用于配置IIS 6.0,而system.webserver版本用于配置IIS 7.0.IIS 7.0包含一个新的ASP.NET管道和一些配置差异,因此额外的配置部分.

然而...

如果您仅在集成模式下运行IIS 7.0,则不需要将处理程序添加到这两个部分.将它添加到system.web也是IIS 7.0在经典模式下运行的后备,除非我弄错了.我没有对此进行过广泛的测试.

有关更多信息,请参见http://msdn.microsoft.com/en-us/library/bb763179.aspx.

  • system.web部分不会被system.webserver部分取代,只是扩展了. (37认同)
  • 那些像<httpRuntime>这样的attributs放在system.web中但仍然在IIS 7集成模式上有所作为呢? (4认同)

lep*_*pie 42

前者适用于经典模式.

后者适用于集成管道模式(在IIS7 +中可用).