如何使用WMSVC服务和NTLM身份验证在Team Build 2010中使用MSDeploy进行部署?

Mic*_*ire 30 msbuild tfs team-build msdeploy tfs2010

我正在尝试使用Team Build 2010部署到Windows Server 2008 R2 Web服务器.我的构建服务器代理设置为在Windows域帐户下运行.我已使用IIS管理器权限在我的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
Run Code Online (Sandbox Code Playgroud)

因为其他开发人员将要设置他们的构建,我宁愿不发布域帐户的密码,我需要使用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
Run Code Online (Sandbox Code Playgroud)

而且我也尝试了一个空白的用户名(如StackOverflow上的其他地方所见),但无济于事.我继续得到错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(3847,5):错误:Web部署任务失败.(使用Web管理服务连接到目标计算机("webservername"),但无法授权.请确保您使用的是正确的用户名和密码,即您要连接的站点存在,并且凭据代表有权访问该站点的用户.)

我也尝试过UseMsdeployexe上一个链接中提到的参数,但后来我得到了与web.config转换相关的其他错误.看起来问题已经出现在Microsoft Connect上,并且在下一期中列为已修复.

小智 10

还有一个额外的步骤,我从未接受过:

资源

您可以选择允许用户使用NTLM通过Web管理服务进行身份验证.为此,通过在HKEY_LOCAL_MACHINE\Software\Microsoft\WebManagement\Server下添加名为"WindowsAuthenticationEnabled"的DWORD键来更新服务器上的注册表,并将其设置为1.如果Web管理服务已启动,则该设置将生效服务重启后.


Sof*_*ter 5

如果使用NTLM失败,则需要为团队构建服务代理授予您的站点权限,以允许非管理员连接到站点或应用程序部署服务器访问.您可以在Management Service下进行配置 .

您可能还想查看配置Web部署提供程序设置. Web部署提供程序设置

如果指定了wmsvc提供程序设置,则默认身份验证类型为Basic; 否则,默认的身份验证类型是NTLM.

如果您想使用基本身份验证类型,还可以使用encryptPassword参数加密密码并在托管服务器上配置设置.

希望这可以帮助.

由于许多不同的原因,此错误代码可能会浮出水面.它通常表示身份验证或授权问题,并且可能由于以下任何原因而发生:

如果使用Web管理服务进行连接:

  • 验证用户名和密码是否正确
  • 验证该站点是否存在
  • 验证用户是否具有站点范围的IIS管理员权限

如果使用Remote Agent Service进行连接:

  • 验证用户名和密码是否正确
  • 验证您指定的用户帐户是否为远程计算机上Administrators组的成员.注意:由于Web Deploy 2.0中存在错误,用户必须是内置管理员或Domain Administrators安全组的成员.尝试与任何其他用户帐户同步,即使是管理员,也会看到此错误代码.验证该站点是否存在