是否可以使用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
的解决方案答案 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,如果允许,用户可以在不同的地方定义它。