如何避免WMI DirectoryEntry缓存失败的连接

时间:2013-05-18 17:37:04

标签: wmi directoryservices directoryentry

在C#中使用DirectoryEntry进行WMI调用时,似乎缓存了故障,因此重试会立即失败而不会重试。

以下是我为重现这一点所做的工作:

DirectoryEntry directoryEntry = new DirectoryEntry();
directoryEntry.AuthenticationType = AuthenticationTypes.Secure;
directoryEntry.Username = connectUsername;
directoryEntry.Password = connectPassword;
directoryEntry.Path = "WinNT://" + connectServerName + ",computer";
newUser = directoryEntry.Children.Add(userName, "user");
  • 拨打防火墙阻止连接的虚拟机。
  • 需要一段时间,然后会因“未找到网络路径”而失败
  • 但是,如果我启用防火墙规则并再试一次,WMI将立即抛出相同的网络路径错误。
  • 只有在等待之后(我现在不确定,但是几分钟)我才能重试,它会注意到网络正在运行。

代码位于WCF服务中,其中每个调用应该对所有内容的新实例都是新鲜的。

有关缓存发生位置的任何想法以及如何确保新的DirectoryEntry进行新的调用?

更新: 我刚尝试了iisreset(网站和Web服务),缓存仍在进行中。然后我重新启动了 Windows Management Instrumentation 服务,然后它进行了一次新的非缓存调用。所以这让我意识到问题不在于C#/ WCF代码或网络,而在于WMI。任何想法如何迫使WMI进行新的非缓存调用?

0 个答案:

没有答案