Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tfs 如何使用WMSVC服务和NTLM身份验证在Team Build 2010中使用MSDeploy进行部署?_Tfs_Msbuild_Msdeploy_Tfsbuild - Fatal编程技术网

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

Tfs 如何使用WMSVC服务和NTLM身份验证在Team Build 2010中使用MSDeploy进行部署?,tfs,msbuild,msdeploy,tfsbuild,Tfs,Msbuild,Msdeploy,Tfsbuild,我正在尝试使用Team Build 2010将其部署到Windows Server 2008 R2 web服务器。“我的生成服务器代理”已设置为在Windows域帐户下运行。我已使用IIS管理器权限成功授予此域帐户在web服务器上的部署权限。此帐户不是web服务器上的管理员。使用以下参数,我可以很好地部署构建: /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:M

我正在尝试使用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
我还试着输入一个空白用户名(如图中其他地方所示),但没有效果。我继续得到错误信息:

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


我还尝试了上一个链接中提到的
UseMsdeployexe
参数,但随后出现了与web.config转换相关的其他错误。它看起来像,并在下一期中被列为已修复。

如果使用NTLM失败,则需要授予team build service agent对站点的权限,以允许非管理员连接到站点或应用程序部署服务器访问。您可以在下进行配置

您可能还希望了解如何配置web部署提供程序设置。

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

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

希望这有帮助。 由于许多不同的原因,可能会出现此错误代码。它通常表示身份验证或授权问题,并且可能由于以下任何原因而发生:

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

  • 验证用户名和密码是否正确
  • 验证站点是否存在
  • 验证用户是否具有对站点的IIS管理器的权限 范围
如果使用远程代理服务进行连接:

  • 验证用户名和密码是否正确
  • 验证您指定的用户帐户是否为 远程计算机上的Administrators组。注意:因为一个bug 在Web Deploy 2.0中,用户必须是内置管理员 或域管理员安全组的成员。试图 与任何其他用户帐户同步,即使它是管理员, 将看到此错误代码。验证站点是否存在

    • 还有一个额外的步骤,我从来没有提到过:

      您可以选择允许用户通过Web进行身份验证 使用NTLM的管理服务。为此,请在上更新注册表 通过添加名为“WindowsAuthenticationEnabled”的DWORD密钥来访问服务器 在HKEY\U LOCAL\U MACHINE\Software\Microsoft\WebManagement\Server下,以及 将其设置为1。如果Web管理服务已启动,则 该设置将在服务重新启动后生效


      嘿@Michael McGuire-你解决过这个问题吗?我现在和你在同一条船上-(试图使用Atlassian Bambol使用msdeploy在Windows Server 2008 R2上发布到IIS 7,似乎无法使用NTLM使其正常工作。这两台计算机都在域上。我将查看目标计算机上的事件日志,特别是安全日志。我还将从命令行尝试msdeploy命令,首先在您自己的工作站上,即n、 如果可能的话,从构建机器。对不起,我还没有开始工作。现在,我的构建中有我们的构建ID的密码。似乎根本没有人想解决这个问题…这是一个令人沮丧的问题。即使有一个适度的赏金,它也收到了6个新的Ups,但没有答案。你能使用Wireshark或Fiddler之类的工具来验证你的请求吗?我们不使用Team Build,但在我们的构建服务器上,它确实使用MSDeploy(通过我们自己在.NET中的自定义代码)部署到我们的web服务器。在my.pubxml文件和msbuild参数中使用不同的设置已经很长时间了,但添加此注册表项可以立即修复此问题。(TFS2012通过WMSVC发布到Win2008R2,无需管理员帐户)