TFS使用WinRM发布管理部署问题

时间:2017-09-23 22:33:33

标签: tfs azure-devops tfsbuild tfs2013 winrm

我正在使用TFS(2015更新3并实施了CI构建。我创建了两个用于发布的环境,一个是登台,另一个是在AWS Windows VM中托管的生产。我使用的是IIS Deploy WinRM扩展(https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp)在发布任务中将程序包部署到远程服务器。

暂存IIS托管在同一个构建计算机上,部署任务正常。当我部署到生产环境时,我遇到了以下错误。

部署在计算机xx.xx.xx.xx上失败,并显示以下消息:System.Management.Automation.Remoting.PSRemotingTransportException:连接到远程服务器xx.xx.xx.xx失败,并显示以下错误消息:WinRM无法完成操作。验证指定的计算机名称是否有效,计算机是否可通过网络访问,以及是否启用了WinRM服务的防火墙例外,并允许从此计算机进行访问。默认情况下,公共配置文件的WinRM防火墙例外限制对同一本地子网内的远程计算机的访问。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。

我认为WinRM无法与目标服务器通信,因此无法正常工作。我尝试按照此链接中的说明进行操作(https://docs.microsoft.com/en-us/vsts/build-release/apps/cd/deploy-webdeploy-iis-winrm)。

我在两台计算机上配置了winRM,甚至在目标服务器上为可信主机添加了构建计算机(我发起了发布)。在这两台机器中,winRM服务正在侦听端口5985,5986。

我尝试测试WinRM连接并尝试在构建机器中执行以下命令。 test-wsman -ComputerName -UseSSL

我收到了以下错误

test-wsman:"> WinRM无法完成操作。验证指定的 计算机名称有效,即WinRM 服务已启用并允许从此计算机进行访问。默认情况下,公共配置文件的WinRM防火墙例外 限制对同一本地子网内的远程计算机的访问。

我确定问题是WinRM无法与目标服务器通信。此TFS winRM部署扩展的要求之一是服务器应该是域加入或工作组加入。 (在https://docs.microsoft.com/en-us/vsts/build-release/apps/cd/deploy-webdeploy-iis-winrm中提到)。这是部署不起作用的原因,我如何加入这两个域?由于目标服务器托管在AWS(它是一个Windows VM机器),我们通过VPN连接。 构建机器的名称类似于MachineName.uk.companyname.com,目标服务器名称是MachineName.abc.risk.cloud(两者都在不同的域中)

有关调试此问题的想法并使此部署在目标服务器中运行吗?

1 个答案:

答案 0 :(得分:0)

  

WinRM配置

     

Windows远程管理(WinRM)要求目标服务器为:

     
      
  • 已加入域或加入工作组
  •   
  • 能够使用HTTP或HTTPS协议进行通信
  •   
  • 使用完全限定的域名(FQDN)或IP地址
  • 解决   

正如文档所述,您需要遵循WinRm配置的要求。由于使用test-wsman -ComputerName -UseSSL也显示与目标服务器的通信,因此部署无法正常工作。

对于AWS相关,您可以尝试使用AWS Tools for Microsoft Visual Studio Team Services。适用于Microsoft Visual Studio Team Services(VSTS)的AWS工具是Microsoft VSTS和本地Microsoft Team Foundation Server(TFS)的扩展,可以轻松地将.NET应用程序部署到AWS。