【问题标题】:MSDeploy hangs when invoking remote Powershell 2.0调用远程 Powershell 2.0 时 MSDeploy 挂起
【发布时间】:2017-04-13 14:42:58
【问题描述】:

我正在从我们的构建服务器调用远程 PowerShell 脚本。问题是当远程脚本运行时间超过一分钟时,MSDeploy 将在完成后挂起。

MSDeploy 的输出如下所示:

信息:睡一分钟... 信息:睡完了! 信息:进程“C:\Windows\system32\cmd.exe”(命令行“”)退出,代码为“0x0”。

远程进程明显结束,但如果运行时间超过一分钟,MSDeploy 将无法识别它。我们正在运行的 MSDeploy 命令如下所示:

"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:runCommand="powershell.exe -File D:\test\command.ps1 < NUL",waitInterval=2147483647,successReturnCodes=0;2 -dest:auto,ComputerName='https://someurl.com',AuthType=Basic,UserName='someusername',Password='somepassword' -allowUntrusted -useCheckSum -Verbose -Debug

请注意我是如何将NUL 中的管道包含到流程中的。这是为了重定向远程powershell进程的STDIN,因为当STDIN被重定向时,它显然可以远程挂起。必须手动关闭。

我在 stackoverflow 上看到了许多帖子,表明这将解决问题。我还能够让&lt; NUL 修复程序在另一个环境中工作。

我也看到了帖子,而不是建议设置标志 -InputFormant None,但这也不起作用。

假设我有 2 台服务器 - Build Server ARemote Server A。无论我应用什么修复程序,Build Server A 上的 MSDeploy 都会挂起,即使 Remote Server A 完成运行其 Powershell 脚本并宣布其返回码。

假设我还有 2 台服务器 - Build Server BRemote Server B。我应用的修复在这些服务器上工作,MSDeploy 没有挂起。

两个环境(A 和 B)都使用 Powershell 2.0 和 MSDeploy 版本 7.1.1955.0。

我注意到输出有一个区别:当使用 -Verbose-Debug 标志运行这两个进程时,构建服务器 A 会出现:

信息:进程“C:\Windows\system32\cmd.exe”(命令行“”)退出,代码为“0x0”。

Build Server B 吐出来:

信息:进程“C:\Windows\system32\cmd.exe”(命令行“”)退出,代码为“0x0”。

详细:同步在 1 遍中完成。

构建服务器 B(未挂起)在其详细输出中提到它已成功同步。构建服务器 A 没有。

很遗憾,我们无法及时升级 PowerShell 或 MSDeploy。有人有什么见解吗?

【问题讨论】:

  • 由于您的构建和服务器配置,您的问题对您来说非常具体,我认为其他任何人都无法重现该错误,因为我们无法访问您的特定环境。 Minimal, Complete, and Verifiable example 会有所帮助,但我认为在这种情况下是不可能的。
  • 我已尽我所能找到环境中的差异。它们看起来一样。 Windows 2008、powershell 2.0 和 msdeploy 版本 7.1.1955.0
  • 除此之外,我没有任何事情可做。我们已经坚持了好几个星期了。我想不出任何可能导致此问题的服务器配置或环境差异。

标签: powershell msdeploy


【解决方案1】:

我们发现了问题所在。

显然,MSDeploy 在调用远程脚本时使用了多个连接。我们的网络超时并且正在终止负责恢复返回状态的连接。这是因为只有在远程脚本完成后才会使用返回状态的连接。寄回任何东西的时间太长了。 STDOUT 的连接没有受到影响,因为它像正常连接一样发回数据包。

解决这个问题就像在我们的网络设置中增加超时时间一样简单。我无法向大家解释这是多么令人沮丧。那是一个很好的一周半的工作。希望这对将来的某人有所帮助。

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 2014-08-22
    • 2014-02-02
    相关资源
    最近更新 更多