Развертывание в Azure с использованием профиля публикации: работает при сбое публикации в VS2017 при использовании Jenkins.

Я загрузил профиль публикации из службы приложений и создал профиль в своем WebApi.

Когда я выполняю «публикацию» с помощью VS 2017, все работает нормально. Когда я пытаюсь выполнить команду развертывания на Jenkins, если это не удается. Сообщение об ошибке, которое у меня есть:

  • Не удалось выполнить задачу развертывания. (Подключен к удаленному компьютеру («XXXXXXXX») с помощью службы веб-управления, но не может авторизоваться.
  • Убедитесь, что имя сайта, имя пользователя и пароль указаны правильно. Если проблема не решена, обратитесь к локальному администратору или администратору сервера.
  • Подключен к удаленному компьютеру ("xxxxxxxxxxx") с помощью службы веб-управления, но авторизоваться не удалось.
  • Удаленный сервер вернул ошибку: (401) Несанкционировано.

У меня есть шаг к Jenkins с использованием командной строки PowerShell, например:

msbuild My.WebApi /P:AllowUntrustedCertificate=true /P:DeployOnBuild=True /p:PublishProfile=$myPublishProfile
  1. Собирается без ошибок
  2. $myPublishProfile является допустимым путем
  3. Этот экземпляр Jenkins работает на сервере, а не на моей машине.
  4. У Jenkins есть собственный пользователь SMC и пользователь аутентификации сервера.
  5. В службе приложений для параметра WEBSITE_WEBDEPLOY_USE_SCM задано значение False.
  6. Я использую один и тот же профиль публикации для создания Jenkins и Visual Studio.

Если оба используют один и тот же профиль публикации, почему я получаю ошибку аутентификации?

Есть ли какая-либо другая конфигурация, которую я должен сделать для выполнения развертывания из Jenkins?


person Gabriel Scavassa    schedule 21.05.2019    source источник


Ответы (1)


Когда вы публикуете с помощью VisualStudio, пароль хранится в зашифрованном файле на вашем диске. Если вам нужно опубликовать с помощью команды msbuild, вы можете добавить учетные данные в командной строке или в профиле публикации.

добавьте эти свойства в командную строку:

msbuild ... /p:UserName=XXX /p:PassWord=YYY

или добавить в профиль

<UserName>XXX</UserName>
<Password>YYY</Password>
person D.J.    schedule 21.05.2019
comment
Да, я забыл об этом. :face-palm: Спасибо, D.J. ! - person Gabriel Scavassa; 21.05.2019