在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");
代码位于WCF服务中,其中每个调用应该对所有内容的新实例都是新鲜的。
有关缓存发生位置的任何想法以及如何确保新的DirectoryEntry进行新的调用?
更新: 我刚尝试了iisreset(网站和Web服务),缓存仍在进行中。然后我重新启动了 Windows Management Instrumentation 服务,然后它进行了一次新的非缓存调用。所以这让我意识到问题不在于C#/ WCF代码或网络,而在于WMI。任何想法如何迫使WMI进行新的非缓存调用?