【发布时间】:2019-06-06 19:36:40
【问题描述】:
我使用 C# 通过 WinRM 连接到远程 PC。
我希望能够尽快检测到连接是否丢失(但没有被遥控器正确关闭,例如 PC 电源关闭或以太网电缆断开)。 我想在 5 秒内检测到连接丢失。这可能吗?
有关信息,我使用此连接运行一些可能持续几分钟的 PowerShell 命令。理想情况下,无论我是否处于这些命令之一的中间,我都想检测连接丢失。
我的 C# 代码是:
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(true, ipAddress, 5986, "/wsman", "http://schemas.microsoft.com/powershell/Microsoft.PowerShell", accountCredential);
connectionInfo.SkipCACheck = true; // SkipCACheck allows to connect without installing the certificate on the host.
connectionInfo.SkipCNCheck = true; // SkipCNCheck allows server name to not match certificate.
connectionInfo.OpenTimeout = 3000; // 3s
connectionInfo.OperationTimeout = 300000; // 5min
connectionInfo.IdleTimeout = 7200000; // 2h
runspace = RunspaceFactory.CreateRunspace(connectionInfo);
【问题讨论】: