web.config文件的设置会覆盖IIS设置吗?

14

举个例子,

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

<system.web>
        <sessionState timeout="10"/>
</system.web>

我可以通过进入应用程序配置选项在IIS中配置会话超时时间。

如果两者都配置了不同的值,哪个值将起作用?更具体地说,所有其他设置是否遵循相同的模式?


编辑: 我认为它们不是一样的。web.config胜出。而当我更改IIS中的值时,没有写回到web.config。

在web.config和IIS的设置之间存在明显的断开。我没有阅读任何关于哪一个覆盖另一个的好文档。我所观察到的是,web.config胜出。我想有人对这种差异有更深入的了解。

6个回答

12

在 web.config 中的设置“获胜”。

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


5

IIS Manager中配置的设置会被添加到位于C:\Windows\System32\inetsrv\config的服务器根应用程序Host.config文件中,作为<location path="your-site/subfolder">元素。由于Web.config中的设置始终优先于applicationHost.config中的设置,如果在IIS Manager中具有相同值的设置与在Web.config中具有不同值的设置,则Web.config值将“获胜”。


5

虽然已经晚了,但可能会为以后来到这里的人解决问题。

这篇文章解释了IISASP.net应用程序之间的继承关系。

提示3:了解Web.config如何继承IIS配置设置

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

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

基于这两个方面,如果我们不了解ApplicationHost.config的条目,我们无法毫无疑问地说web.config会覆盖IIS
引用自:ApplicationHost.config简介

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


https://weblogs.asp.net/jongalloway/10-things-asp-net-developers-should-know-about-web-config-inheritance-and-overrides - Rainhider
使用“lock down”默认设置时,你可能会发现web.config中的配置并不按照你所期望的那样工作。 - XoXo

4
他们是一样的。

0

会话超时: web.config将覆盖IIS配置工具的会话超时设置 仅适用于ASP.NET应用程序...

对于asp相反是真的


-1

它们是一样的。顺便说一句,你可以比提问还要快地尝试它!:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接