Ошибка VSTS msdeploy.exe: ERROR_USER_NOT_AUTHORIZED_FOR_CONTENTPATH

Я пытаюсь создать определение выпуска внутри VSTS для развертывания моего приложения ASP.NET Core 2.0 на моем производственном сервере.

Я использую расширение MSDeployAllTheThings: https://marketplace.visualstudio.com/items?itemName=rschiefer.MSDeployAllTheThings

Я могу развернуть в Visual Studio, используя ту же конфигурацию...

VSTS Config (не работает)

введите описание изображения здесь

Ошибка VSTS

введите описание изображения здесь

Visual Studio Config (рабочая)

введите описание изображения здесь


Ребята, у вас есть идеи, как это сделать?

1 ответ

Решение

Не знаком с smarterasp.net. Но это должно быть проблемой с этим сайтом.

Если вы запустите ту же команду msdeploy с вашего локального компьютера вручную, вы получите то же сообщение об ошибке. Мы не увидели эту ошибку, когда использовали ту же команду для развертывания на другом хосте вместо smarterasp.net. И если вы добавите "-verbose" в команду, вы получите более подробную информацию, которая указывает, что команде не удалось добавить виртуальный путь:

Когда вы развертываете свой проект из VS, он напрямую использует файл манифеста и исходную папку, а не метод "package". Поэтому вы можете обратиться за помощью к smarterasp.net или использовать тот же метод развертывания, что и в Visual Studio, или другой метод развертывания, например FTP.

У меня была такая же проблема с развертыванием на smarterasp.net, и я смог настроить все для веб-развертывания:

  1. Ваша задача сборки Dotnet может создать пакет развертывания с необходимыми файлами, такими как [YourProject].deploy.cmd, [YourProject].zip и т. Д. Для этого вы можете использовать следующие аргументы в своей задаче сборки:
--configuration $(BuildConfiguration) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\"
  1. Добавьте задачу "Пакетный сценарий" и укажите путь к вашему [YourProject].deploy.cmd в поле Путь, а также в своих аргументах:
/y /m:$(SmarterAspNet.PublishUrl) -AllowUntrusted /u:$(SmarterAspNet.UserName) /p:$(SmarterAspNet.Password) /a:Basic "-setParam:name='IIS Web Application Name',value='$(SmarterAspNet.SiteName)'" -enableRule:AppOffline

С помощью этих двух основных задач DevOps я смог развернуть свое приложение на smarterasp.net.

О задаче MSDeployAllTheThings: я удалил ее, потому что она мне больше не нужна

Другие вопросы по тегам