我只想启用它,但显然不使用GUI就不可能。
我试过的命令:
appcmd set config /section:httpLogging /dontLog:False /selectiveLogging:LogAll
Set-ItemProperty "IIS:\Sites\MySite" -name logFile -value @{enabled=$true}
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='MySite']/logFile" -name "LogExtFileFlags" -value @{enabled=$true}
当我执行Get-Windowsfeature时,我可以看到IIS-HttpLogging被标记为已启用。
我没有尝试过任何已启用IIS日志记录的功能,我必须使用GUI并单击启用。
当我运行它时,它返回true:
PS C:\Windows\System32\inetsrv> (Get-WebConfiguration -PSPath 'MACHINE/WEBROOT/APPHOST' -filter "/system.applicationHost/sites/MYSite" ).logfile.enabled
编辑: 因此,即使GUI将其显示为"禁用",日志记录似乎也能正常工作。也许这是GUI中的一个错误?
EDIT2: 好的,如果我尝试appcmd命令并定位我的特定网站,我会收到此错误:
.\appcmd set config "MySite" /section:httpLogging /dontLog:False
PS C:\Windows\System32\inetsrv> .\appcmd set config "MySite" /section:httpLogging /dontLog:False
ERROR ( message:Can not set attribute "dontLog" to value "False".. Reason: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false
是说该部分已锁定在父级别,但我能够点击启用该网站在GUI中登录并且没有出现任何错误。
答案 0 :(得分:1)
当我编写IIS管理器的克隆时,我可以告诉你"启用/禁用"按钮链接到名为" dontLog",https://github.com/jexuswebserver/JexusManager/blob/master/JexusManager.Features.Logging/LoggingFeature.cs
的属性其参考资料可在
找到https://www.iis.net/configreference/system.webserver/httplogging