VSTS msdeploy.exe error: ERROR_USER_NOT_AUTHORIZED_FOR_CONTENTPATH

VSTS msdeploy.exe error: ERROR_USER_NOT_AUTHORIZED_FOR_CONTENTPATH

我正在尝试在 VSTS 中创建一个发布定义,以便在我的生产服务器上部署我的 ASP.NET Core 2.0 应用程序。

我正在使用 MSDeployAllTheThings 扩展:https://marketplace.visualstudio.com/items?itemName=rschiefer.MSDeployAllTheThings

我可以使用相同的配置在 Visual Studio 内部部署...

VSTS 配置(不工作)

VSTS 错误

Visual Studio 配置(工作)


你们知道怎么做吗?

不熟悉smarterasp.net。但这应该是那个网站的问题。

如果您 运行 从本地计算机手动执行相同的 msdeploy 命令,您将收到相同的错误消息。当使用相同的命令部署到其他主机而不是 smarterasp.net 时,我们没有看到此错误。如果在命令中添加“-verbose”,您将获得更详细的信息,表明该命令未能添加虚拟路径:

当您从 VS 部署项目时,它直接使用清单文件和源文件夹,而不是 "package" 方法。因此,您要么联系 smarterasp.net 寻求帮助,要么使用与 Visual Studio 相同的部署方法或其他一些部署方法,例如 FTP.

我在部署到 smarterasp.net 时遇到了同样的问题,并且能够为 Web 部署进行设置:

  1. 您的 Dotnet Build 任务可以创建包含 [YourProject].deploy.cmd、[YourProject].zip 等必要文件的部署包。为此,您可以在构建任务中使用下一个参数:
--configuration $(BuildConfiguration) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\"
  1. 添加 "Batch script" 任务并在路径字段和参数中设置 [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 任务:我删除了它,因为我不再需要它了