我正在尝试使用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
因为其他开发人员将要设置他们的构建,并且我不想发布域帐户的密码,所以我需要使用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,并列在下一期修复中。
答案 0 :(得分:10)
还有一个额外的步骤,我从未接受过:
您可以选择允许用户通过Web进行身份验证 使用NTLM的管理服务。为此,请更新注册表 服务器通过添加名为“WindowsAuthenticationEnabled”的DWORD键 在HKEY_LOCAL_MACHINE \ Software \ Microsoft \ WebManagement \ Server下,和 将其设置为1.如果Web管理服务已启动,则 设置将在重新启动服务后生效。
答案 1 :(得分:5)
如果使用NTLM失败,则需要为团队构建服务代理授予您的站点权限,以允许非管理员连接到站点或应用程序部署服务器访问。您可以在Management Service。
下进行配置您可能还想了解一下配置Web部署提供程序设置。 Web Deploy Provider Settings
如果指定了wmsvc provider设置,则默认的身份验证类型为Basic;否则,默认身份验证类型为NTLM。
如果您想使用基本身份验证类型,还可以使用encryptPassword参数加密密码并在托管服务器上配置设置。
由于许多不同的原因,此错误代码可能会浮出水面。它通常表示身份验证或授权问题,并且可能由于以下任何原因而发生:
如果使用Web管理服务进行连接:
如果使用Remote Agent Service进行连接: