Конфигурация агента разблокировки, необходимая для задачи добавления веб-приложения
Чтобы создать каталог в IIS и добавить веб-приложение, я включил этот сценарий в задачу Powershell группы развертывания Azure DevOps Server:
New-Item -Path "C:\inetpub\wwwroot" -Name "MyNewApp" -ItemType "directory" `
C:\Windows\system32\inetsrv\appcmd.exe add app `
/site.name:"Default Web Site" `
/path:"/MyNewApp" `
/physicalPath:"C:\inetpub\wwwroot\MyNewApp"`
Когда эта задача запускается, она выдает ошибку: (метки времени удалены для ясности)
Объект APP "Веб-сайт по умолчанию /MyNewApp" изменен
ОШИБКА ( hresult:80090016, сообщение: не удалось зафиксировать изменения конфигурации.
Keyset не существует)
После выполнения приведенного выше кода из консоли Powershell при входе в систему как себя или учетной записи службы возвращаются следующие сообщения:
Добавлен объект APP "Веб-сайт по умолчанию /MyNewApp"
Добавлен объект VDIR "Веб-сайт по умолчанию /MyNewApp"
Я могу подтвердить в IIS Manager, что каталог и приложение были созданы.
Я не могу воспроизвести ошибку в консоли. Эта ошибка возникает только в том случае, если она работает в качестве агента выпуска и инициируется через веб-интерфейс сервера DevOps.
Я пробовал следующее:
- Проблема с набором ключей - https://support.microsoft.com/en-us/help/977754/keyset-does-not-exist-error-message-when-you-try-to-change-the-identit для локального Сервис и сервис аккаунтов.
- Обновление разрешений на C:\inetpub\wwwroot для учетной записи службы
- Добавление учетной записи службы в разрешения диспетчера IIS
Обновление 1:
Я обнаружил, что ошибка "Keyset not Существует" возникла при попытке использовать пул приложений DefaultAppPool как часть установки. Этот пул приложений не был настроен с учетной записью службы, но все еще был настроен с идентификатором пула приложений по умолчанию.
Однако после внесения этого изменения у меня появляется новая ошибка:
Объект APP "Веб-сайт по умолчанию /MyNewApp" изменен
ОШИБКА ( hresult:80070057, сообщение: не удалось зафиксировать изменения конфигурации.
Неверный параметр.)
...
Процесс 'appcmd.exe' завершен с кодом '87'.
Любое руководство с благодарностью.
Обновление 2:
Я зарегистрировал проблему с сообществом Microsoft, которая в настоящее время рассматривается. Вы можете увидеть это здесь.
0 ответов
Вы также можете посмотреть на реализацию.net с помощью servermanager:
https://docs.microsoft.com/en-us/iis/manage/scripting/how-to-use-microsoftwebadministration
Не должно быть очень сложно использовать это в PowerShell.