Ошибка 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, и я смог настроить все для веб-развертывания:
- Ваша задача сборки Dotnet может создать пакет развертывания с необходимыми файлами, такими как [YourProject].deploy.cmd, [YourProject].zip и т. Д. Для этого вы можете использовать следующие аргументы в своей задаче сборки:
--configuration $(BuildConfiguration) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\"
- Добавьте задачу "Пакетный сценарий" и укажите путь к вашему [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: я удалил ее, потому что она мне больше не нужна