我正在尝试使用Team Build 2010将应用程序部署到Windows Server 2008 R2 Web服务器。我的构建服务器代理已设置为在Windows域帐户下运行。我已经成功地为此域帐户使用IIS Manager权限在我的Web服务器上授予权限以进行部署。该帐户在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)
: error : Web deployment task failed.(使用 Web 管理服务连接到目标计算机 ("webservername") 成功,但未能授权。请确保您正在使用正确的用户名和密码,要连接的站点存在,并且凭据表示具有权限访问站点的用户。)
我还尝试了在之前提到的链接中提到的 UseMsdeployexe
参数,但我随后遇到与 web.config 转换相关的其他错误。根据 Microsoft Connect 上已经存在的问题 ,该问题已在下一版本中得到修复。