使用发布配置文件部署到 Azure:使用 Jenkins 时在 VS2017 上发布失败时工作
Deploy to Azure using publish profile : Works when publishing on VS2017 fails when using Jenkins
我从我的应用服务下载了发布配置文件并在我的 WebApi 上创建了一个配置文件。
当我使用 VS 2017 执行 "publishing" 时,它工作正常。
如果失败,当我尝试在 Jenkins 上执行部署命令时。我收到的错误消息是:
- 部署任务失败。 (使用 Web 管理服务连接到远程计算机 ("XXXXXXXX"),但无法授权。
- 确保站点名称、用户名和密码正确。如果问题仍未解决,请联系您的本地或服务器管理员。
- 已使用 Web 管理服务连接到远程计算机 ("xxxxxxxxxxx"),但无法授权。
- 远程服务器返回错误:(401) 未经授权。
我在 Jenkins 上使用了 PowerShell 命令行,例如:
msbuild My.WebApi /P:AllowUntrustedCertificate=true /P:DeployOnBuild=True /p:PublishProfile=$myPublishProfile
- 构建没有错误
- $myPublishProfile 是有效路径
- 这个 Jenkins 实例在服务器上运行,而不是在我的机器上。
- Jenkins 有自己的 SMC 用户和服务器授权用户。
- 应用服务已将 WEBSITE_WEBDEPLOY_USE_SCM 设置为 False
- 我正在使用相同的发布配置文件在 Jenkins 和 Visual Studio 上构建。
如果两者都使用相同的发布配置文件,为什么我会收到身份验证错误?
为了从 Jenkins 执行 Deploy,我应该做任何其他配置吗?
当您使用 visualstudio 发布时,密码存储在磁盘上的加密文件中。如果您需要使用 msbuild-command 发布,您可以在命令行或 publishprofile
中添加凭据
在命令行附加这些属性:
msbuild ... /p:UserName=XXX /p:PassWord=YYY
或包含在个人资料中
<UserName>XXX</UserName>
<Password>YYY</Password>
我从我的应用服务下载了发布配置文件并在我的 WebApi 上创建了一个配置文件。
当我使用 VS 2017 执行 "publishing" 时,它工作正常。 如果失败,当我尝试在 Jenkins 上执行部署命令时。我收到的错误消息是:
- 部署任务失败。 (使用 Web 管理服务连接到远程计算机 ("XXXXXXXX"),但无法授权。
- 确保站点名称、用户名和密码正确。如果问题仍未解决,请联系您的本地或服务器管理员。
- 已使用 Web 管理服务连接到远程计算机 ("xxxxxxxxxxx"),但无法授权。
- 远程服务器返回错误:(401) 未经授权。
我在 Jenkins 上使用了 PowerShell 命令行,例如:
msbuild My.WebApi /P:AllowUntrustedCertificate=true /P:DeployOnBuild=True /p:PublishProfile=$myPublishProfile
- 构建没有错误
- $myPublishProfile 是有效路径
- 这个 Jenkins 实例在服务器上运行,而不是在我的机器上。
- Jenkins 有自己的 SMC 用户和服务器授权用户。
- 应用服务已将 WEBSITE_WEBDEPLOY_USE_SCM 设置为 False
- 我正在使用相同的发布配置文件在 Jenkins 和 Visual Studio 上构建。
如果两者都使用相同的发布配置文件,为什么我会收到身份验证错误?
为了从 Jenkins 执行 Deploy,我应该做任何其他配置吗?
当您使用 visualstudio 发布时,密码存储在磁盘上的加密文件中。如果您需要使用 msbuild-command 发布,您可以在命令行或 publishprofile
中添加凭据在命令行附加这些属性:
msbuild ... /p:UserName=XXX /p:PassWord=YYY
或包含在个人资料中
<UserName>XXX</UserName>
<Password>YYY</Password>