Я действительно борюсь с этим. Команда похожа на то, что подтверждено здесь, и на многих других сайтах.
Я хочу добавить пользовательское поле ведения журнала в IIS через Add-WebConfigurationProperty
Команда PowerShell. Имя настраиваемого поля X-переадресовано-для
. Тем не менее, я также попытался добавить тестовое задание
поле. Я использую IIS v10 на Windows Server 2019.
Я использую это:
Add-WebConfigurationProperty -filter "system.applicationHost/sites/siteDefaults/logFile/customFields" -name "." -value @{logFieldName='test';sourceName='X-Forwarded-For';sourceType='RequestHeader'}
При первом запуске получаю следующее:
Add-WebConfigurationProperty : Имя файла: \?\C:\Windows\system32\inetsrv\config\applicationHost.config
Ошибка: не удается зафиксировать изменения конфигурации, поскольку файл был изменен на диске.
При втором запуске получаю следующее:
Add-WebConfigurationProperty : Имя файла:
Ошибка: невозможно добавить повторяющуюся запись коллекции типа «добавить» с уникальным ключевым атрибутом «logFieldName», для которого задано значение «тест».
И он вообще никогда не изменяет файл applicationHost.config:
<siteDefaults>
<logFile logExtFileFlags="Date, Time, ClientIP, UserName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Referer, HttpSubStatus" logFormat="W3C" directory="D:\inetpub\logs\logfiles">
<customFields>
<clear />
</customFields>
</logFile>
<traceFailedRequestsLogging directory="D:\inetpub\logs" />
<ftpServer>
<logFile directory="D:\inetpub\logs\logfiles" />
</ftpServer>
</siteDefaults>
Это поле никогда не отображается в диспетчере IIS. Он также не отображается с Get-вебконфигуратионпроперти
.
Кроме того, я вручную добавил X-переадресовано-для
через графический интерфейс диспетчера IIS (который немедленно правильно изменил applicationHost.config и отображается через Get-вебконфигуратионпроперти
), а затем попытался добавить его через Powershell, и я снова получаю сообщение об ошибке «не могу добавить дубликат». Затем, когда я удаляю поле через графический интерфейс и снова запускаю команду, я получаю сообщение об ошибке «Не могу зафиксировать изменения». Если я снова запускаю команду, я получаю сообщение об ошибке «Невозможно добавить дубликат». Тем не менее, applicationHost.config по-прежнему не изменяется. Таким образом, очевидно, что команда влияет на ту же область, которую я изменяю в графическом интерфейсе, и, похоже, она что-то делает, потому что я не могу добавлять дубликаты, но изменения никогда не отображаются в applicationHost.config или в графическом интерфейсе. Я попытался закрыть и снова открыть диспетчер IIS и перезапустить IIS.
Что мне не хватает?