web.config文件设置是否覆盖IIS设置?

Aar*_*els 11 asp.net iis

例如,

我可以通过添加以下内容在web.config文件中指定会话超时:

<system.web>
        <sessionState timeout="10"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)

或者,我可以通过转到"应用程序配置选项"在IIS中配置会话超时.

如果它们都配置为不同的值,哪一个赢?更具体地说,所有其他设置是否遵循相同的模式?


编辑:我不认为他们是同一个人.web.config获胜.当我在IIS中更改值时,没有任何内容被写回web.config.

web.config中的设置与IIS中的设置之间存在明确的脱节.我没有阅读任何关于哪一个覆盖另一个的好文档.我所观察到的是web.config获胜.我认为其他人可能会更深入地了解这种差异.

Ale*_*exS 12

web.config中的那个'获胜'.

编辑:基本上,当您从UI编辑设置时,更改将写回web.config


Yet*_*per 5

他们是一样的.


dav*_*vid 5

在 IIS 管理器中配置的设置作为<location path="your-site/subfolder">元素添加到服务器的根 applicationHost.config 文件(位于 C:\Windows\System32\inetsrv\config)。由于 web.config 中的设置始终覆盖 applicationHost.config 中的设置,如果同一设置在 IIS 管理器中具有一个值而在您的 web.config 中具有另一个值,则 web.config 值“胜出”。


Fot*_*mis 5

现在回答已经太晚了,但可能会为未来来到这里的人澄清问题。

本文解释了应用程序IIS之间的继承ASP.net

引自技巧 3:了解 Web.config 如何继承 IIS 配置设置

当然,服务器管理员不一定希望允许服务器上的任何应用程序通过 Web.config 修改设置,因此 ApplicationHost.config 中有可配置的策略,用于说明各个应用程序是否可以覆盖设置。

这篇文章ApplicationHost.config解释了两个属性的用法:overrideModeDefaultallowDefinition。这两个属性都设置是否以及谁可以覆盖IIS内部设置ApplicationHost.config

基于这两者,如果我们不了解条目,我们就不能毫无疑问地说web.configoverrides 。IISApplicationHost.config

引用自:ApplicationHost.config简介

默认情况下,大多数 IIS 部分都被锁定,在该部分中使用 overrideModeDefault="Deny"。