【发布时间】:2011-11-30 04:12:33
【问题描述】:
我正在尝试使用 Team Build 2010 部署到 Windows Server 2008 R2 Web 服务器。我的构建服务器代理设置为在 Windows 域帐户下运行。我已使用 IIS 管理器权限在我的 Web 服务器上成功授予此域帐户权限以进行部署。此帐户不是网络服务器上的管理员。我可以使用以下参数很好地部署构建:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=False
/p:MSDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:UserName=DOMAIN\BUILDID
/p:Password=buildidpassword
因为其他开发人员将要设置他们的构建,我宁愿不公布域帐户的密码,我需要使用 NTLM 身份验证来部署。我想继续使用 Web 管理服务方法 (WMSVC) 进行部署,因此 BUILDID 不必是管理员。
我已经深入研究了“Microsoft.Web.Publishing.targets”,看来我应该能够传递一个 AuthType 参数来控制授权类型,但它似乎没有任何效果。我试过了:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=False
/p:MSDeployPublishMethod=WMSVC
/p:AllowUntrustedCertificate=True
/p:MSDeployServiceUrl=webservername
/p:DeployIisAppPath="Web Site Name"
/p:AuthType=NTLM
我还尝试输入一个空白用户名(如在 StackOverflow 的其他地方看到的),但无济于事。我继续收到错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:Web 部署任务失败。(使用 Web 管理服务连接到目标计算机(“webservername”),但无法授权。请确保您使用的用户名和密码正确,即您要连接的站点存在,并且凭据代表有权访问该站点的用户。)
我也尝试了上一个链接中提到的UseMsdeployexe 参数,但是我得到了与 web.config 转换相关的其他错误。它看起来像the issue is already on Microsoft Connect,并在下一期中列为已修复。
【问题讨论】:
-
嘿@Michael McGuire - 你有没有解决这个问题?我现在和你在同一条船上! :-( 尝试使用 Atlassian Bamboo 使用 msdeploy 发布到 Windows Server 2008 R2 上的 IIS 7,似乎无法使用 NTLM 使其工作。两台机器都在域上。
-
我会查看目标计算机上的事件日志,尤其是安全日志。我也会从命令行尝试 MSDEPLOY 命令,首先在您自己的工作站上,然后,如果可能的话,从构建机器上尝试。
-
对不起,我还没有让这个工作。目前,我在构建中拥有构建 ID 的密码。
-
似乎没有人想解决这个问题......这真是太糟糕了。即使有适度的赏金,它也收到了 6 个新的 Ups 并且没有答案。
-
您可以使用 Wireshark 或 Fiddler 之类的工具来验证您的请求是否正常?我们不使用 Team Build,但在我们的构建服务器上,它使用 MSDeploy(通过我们自己在 .NET 中的自定义代码)部署到我们的 Web 服务器。
标签: tfs msbuild msdeploy tfsbuild