【问题标题】:Why is Web Deploy using the wrong account?为什么 Web Deploy 使用错误的帐户?
【发布时间】:2016-01-07 00:44:00
【问题描述】:

当我从本地计算机上的 Visual Studio 启动 Web Deploy 时,我已验证它可以正常工作(使用 NTLM 授权)。现在我希望我的构建服务器每晚自动部署(如果合适)。我在构建服务器上使用 Jenkins,并且我已授予远程计算机上 IIS 中的帐户访问权限。我的 MSBuild 参数如下:

/p:DeployOnBuild=true  
/p:Configuration=Debug  
/p:Platform=x86  
/p:PublishProfile=DEV  
/p:AuthType=NTLM  
/p:AllowUntrustedCertificate=True  
/p:Username=

DEV 发布配置文件指定了我的 DEV 服务器,该服务器使用自签名证书,因此需要一个不受信任的证书。 NTLM 和空白用户名应使用当前用户/帐户进行连接。

但是,Jenkins 作业的 MSBuild 步骤失败并出现此错误

msdeploy 错误 ERROR_USER_UNAUTHORIZED:Web 部署任务失败。 (使用 Web 管理服务连接到远程计算机(“DEV-SERVER”),但无法授权。确保您使用的用户名和密码正确,您要连接的站点存在,并且凭据代表有权访问该站点的用户。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED。)

当我查看 DEV-SERVER 上的 IIS 日志时,我看到以下内容:

2016-01-06 23:55:10 159.212.19.186 HEAD /msdeploy.axd site=MySite 8172 - 159.212.19.123 - 401 2 5 0
2016-01-06 23:55:10 159.212.19.186 HEAD /msdeploy.axd site=MySite 8172 CO\BUILD-SERVER$ 159.212.19.123 - 401 2 64 78

我期待看到 CO\jenkins,这是 Jenkins 正在运行的帐户,而不是 CO\BUILD-SERVER$。 (最后的 $ 是什么?)我认为使用了错误的帐户是否正确?我需要做些什么才能使其正常工作?

【问题讨论】:

  • CO\BUILD-SERVER$ 是构建服务器的机器帐户。如果您在那台机器上运行了一个从属服务器,它是否作为 Windows 服务运行?如果是这样,它可能作为“系统”运行
  • @JamesReed 你叫它。我与设置 Jenkins 的人进行了验证。他们一直在 CO\jenkins 帐户下手动运行它,但是构建服务器重新启动并且 Windows 服务自动在 System 帐户下启动它。他们切换了启动服务的帐户,这解决了我的问题,但显然运行 Selenium 测试存在一些问题。我会单独调查。非常感谢!如果您想回答并包含此解决方案和缺点,我很乐意接受。

标签: jenkins msbuild continuous-integration ntlm webdeploy


【解决方案1】:

CO\BUILD-SERVER$ 是构建服务器的机器帐户。

如果你在那台机器上运行了一个从属服务器,它是作为 Windows 服务运行的吗?如果是这样,它可能作为“系统”运行

还有 Selenium 测试,如果测试在构建服务器上运行,那么服务可能需要设置为交互式运行,以便测试可以针对 UI 运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多