如何在IIS 7中使用appcmd更改allowDefinition部分属性?

时间:2009-04-06 13:45:18

标签: iis iis-7 appcmd

是否可以使用appcmd更改allowDefinition的值?具体来说,我尝试在应用程序级别启用对httpCompression模块的更改。

通过手动更改以下行来修改applicationHost.config:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />

<section name="httpCompression" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

允许我执行以下appcmd命令:

appcmd set config "website name" /section:httpCompression /noCompressionForProxies:false
appcmd set config "website name" /section:httpCompression /noCompressionForHttp10:false

但是我需要一个不依赖于手动编辑applicationHost.config

的解决方案

3 个答案:

答案 0 :(得分:5)

我的问题是,我必须将anonymousAuthentication从False更改为True。当我做的时候: appcmd set config websitename / section:anonymousAuthentication / enabled:True

我得到的错误: 配置错误此配置不能在此路径中使用。当该部分在父级别锁定时会发生这种情况。默认情况下锁定(overrideModeDefault =“Deny”)...

要解锁,请执行以下操作: appcmd unlock config / section:?这将列出您想要的部分。然后输入:

appcmd unlock config /section:system.webserver/security/authentication/anonymousauthentication

多数民众赞成......:)

答案 1 :(得分:2)

尝试使用%windir%\system32\inetsrv\appcmd unlock config -section:*sectionName*。见http://blog.donnfelker.com/2007/03/26/iis-7-this-configuration-section-cannot-be-used-at-this-path/

在发布此答案之后,我实际上遇到了这样做的需要。

%systemroot%\System32\inetsrv\appcmd.exe unlock config /section:system.WebServer/[rest of the path to config section you need to edit]

答案 2 :(得分:0)

一个重要的警告,你永远不应该改变allowDefinition,这是一个重要的设置,通常有一个原因,例如,即使你在特定的目录或应用程序中设置它也不会工作,所以开发人员已经指定了。

所以请永远不要修改节定义中的allowDefinition属性。另一方面,您可以修改overrideModeDefault,如果允许,用户可以在不同的地方定义它。