【问题标题】:Difference between <system.web> and <system.webServer>?<system.web> 和 <system.webServer> 之间的区别?
【发布时间】:2010-09-26 04:43:59
【问题描述】:

每次我必须为带有 IIS7 的 ASP.NET 添加处理程序或模块时,说明总是告诉我将其合并为两个部分:system.websystem.webserver

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>

还有这个:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>

这两个部分有什么区别?

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

【问题讨论】:

标签: asp.net iis-7 web-config


【解决方案1】:

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 中但在 IIS 7 集成模式下仍会产生影响呢?
  • system.web 部分没有被 system.webserver 部分取代,只是扩展了。
  • 在 IIS 8.5 上,我发现 httpCookies 设置在 system.webServer 中不可用,但如果我创建一个 system.web 并将其放入其中,则可以使用。
【解决方案2】:

前者用于经典模式。

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

【讨论】:

  • 根据我的经验,这是一个在长度、清晰度和现实方面更好的答案。除了前者的经典模式外,添加 IIS express 和其他非 IIS 7 的服务器。
猜你喜欢
  • 1970-01-01
  • 2011-10-28
  • 2011-07-07
  • 2011-06-13
  • 1970-01-01
  • 2021-12-25
  • 2020-05-10
  • 2014-09-20
  • 2010-10-28
相关资源
最近更新 更多