首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测WinRM连接丢失

问检测WinRM连接丢失
EN

Stack Overflow用户
提问于 2019-06-07 03:36:40
回答 1查看 122关注 0票数 0

我使用C#通过WinRM连接到远程PC。

我希望能够尽可能快地检测到连接是否丢失(但遥控器没有正确关闭,例如PC电源关闭或以太网电缆断开)。我希望在不到5秒的时间内检测到连接中断。这有可能吗?

作为信息,我使用这个连接来运行一些PowerShell命令,这些命令可以持续几分钟。最理想的情况是,无论我是否处于这些命令的中间,我都希望检测到连接丢失。

我的C#代码是:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

发布于 2019-06-07 03:41:07

我发现ping很适合这样的东西:

代码语言:javascript
复制
private bool HostPingable(string host)
    {
        try
        {
            var ping = new Ping();
            var reply = ping.Send(host);
            return reply != null && reply.Status == IPStatus.Success;
        }
        catch (Exception e)
        {
            e.LogException(Logger, host);
        }
        finally { GC.Collect(); }
        return false;
    }

在建立任何WinRM连接之前,您可以运行此命令来查看主机是否在线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56484052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档