关闭ManagementScope连接

时间:2017-08-08 20:17:17

标签: c# wmi

我有以下代码连接到远程计算机以执行WMI查询。

var managementScope = new ManagementScope
{
    Path = new ManagementPath(@"\\hostname\root\cimv2")
};

managementScope.Connect();

完成查询远程计算机后,我希望关闭连接。

根据ManagementScope.IsConnected属性的文档:

  

创建后,作用域将断开连接,直到有人显式调用Connect,或者将作用域用于需要实时连接的任何操作。此外,只要更改范围的标识属性,范围就会与先前的连接断开连接。

为了尝试关闭连接,我添加了以下代码:

managementScope.Path = new ManagementPath(string.Empty);

但是,尽管已更改ManagementScope对象的属性,但仍然建立了与远程计算机(6.7.8.9)的连接,如主机上的netstat所示:

TCP    1.2.3.4:12345      6.7.8.9:135       TIME_WAIT
TCP    1.2.3.4:12345      6.7.8.9:49154     ESTABLISHED

程序退出后,连接将降至TIME_WAIT并最终退出。

由于我打算在程序的生命周期内连接到许多计算机,理论上这可能会导致可用TCP端口的瓶颈或耗尽。

如何关闭WMI TCP连接?

0 个答案:

没有答案