Рейтинг:0

Добавление настраиваемого поля ведения журнала в IIS с помощью Add-WebConfigurationProperty не работает

флаг ng

Я действительно борюсь с этим. Команда похожа на то, что подтверждено здесь, и на многих других сайтах.

Я хочу добавить пользовательское поле ведения журнала в 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.

Что мне не хватает?

Рейтинг:0
флаг ng

По-видимому, мой сеанс Powershell был испорчен.

После закрытия Powershell и его повторного открытия я смог успешно выполнить команду, и изменение сразу же появилось в графическом интерфейсе и applicationHost.config после обновления.

Проблема появляется снова, когда:

  1. Я пытаюсь добавить свойство «дубликат»
  2. Я вручную удаляю свойство из графического интерфейса IIS
  3. Я пытаюсь добавить свойство снова. Затем я получаю сообщение об ошибке не удалось совершить.

После этого Powershell необходимо закрыть и снова открыть, после чего я могу успешно добавить свойство.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.