0

我从我的应用服务下载了发布配置文件,并在我的 WebApi 上创建了一个配置文件。

当我使用 VS 2017 执行“发布”时,它工作正常。当我尝试在 Jenkins 上执行部署命令时失败。我收到的错误消息是:

  • 部署任务失败。(使用 Web 管理服务连接到远程计算机(“XXXXXXXX”),但无法授权。
  • 确保站点名称、用户名和密码正确。如果问题仍未解决,请联系您的本地或服务器管理员。
  • 使用 Web 管理服务连接到远程计算机(“xxxxxxxxxxx”),但无法授权。
  • 远程服务器返回错误:(401) Unauthorized。

我使用 PowerShell 命令行在 Jenkins 上迈出了一步,例如:

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 上进行构建。

如果两者都使用相同的发布配置文件,为什么我会收到 Auth 错误?

我应该做任何其他配置来从 Jenkins 执行 Deploy 吗?

4

1 回答 1

1

当您使用 visualstudio 发布时,密码存储在磁盘上的加密文件中。如果您需要使用 msbuild-command 发布,您可以在命令行或发布配置文件中添加凭据

在命令行上附加这些属性:

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

或包含在配置文件中

<UserName>XXX</UserName>
<Password>YYY</Password>
于 2019-05-21T07:44:24.813 回答