System.IO.FileNotFoundException:找不到网络路径。在Windows 7上使用DirectoryEntry对象时出现异常

时间:2012-12-19 15:39:44

标签: c# .net directoryentry

我正在尝试使用DirectoryEntry对象连接到远程Windows 7计算机。这是我的代码

DirectoryEntry obDirEntry = new DirectoryEntry("WinNT://hostName", "hostName\\testUser", "password123", AuthenticationTypes.Secure);               
            try
            {
                if (obDirEntry.Properties.Count > 0)
                {                        
                   //ok
                }
            }
            catch (Exception excp)
            {}

如果我能够连接到远程Windows Server 2003机器或本地Windows 7机器,那么我没有得到任何错误。但是,当我尝试连接到远程Windows 7机器时,我在行if (obDirEntry.Properties.Count > 0)

处获得异常
 Exception :System.IO.FileNotFoundException: The network path was not found.

 at System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.GetInfo()
 at System.DirectoryServices.DirectoryEntry.RefreshCache()
 at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
 at System.DirectoryServices.PropertyCollection.get_Count()

我可以ping远程窗口7 m / c。防火墙和UAC也关闭了。问题是我在每个远程Windows 7机器上遇到此问题。我试图将ip地址放在url而不是hostname中,但在这种情况下即使在本地机器上我也会遇到异常。 nslookup命令能够解析该远程m / c hostName。 这可能是什么原因?什么可以解决这个问题? 提前致谢 !!

2 个答案:

答案 0 :(得分:2)

您需要正确访问远程注册表才能以这种方式连接到Windows 7(& 8)系统。

如何成功连接到远程注册表有一个guide here。它收集所需的所有不同信息 - 启用文件和打印机共享,启用远程注册表服务,并将连接到远程注册表的特定用户添加到HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

在远程系统上执行了所有这些任务后,您应该能够使用WinRT://remoteHost远程连接到它。我在一些系统上对它进行了测试,但它确实有效。

如果系统是域绑定系统并且用于连接的帐户是域管理员帐户,则可能会全部自动运行。

答案 1 :(得分:2)

最近我最近发现了一些我建立的内部网站。

我发现应该修复的一个项目是Microsoft Hotfix:http://support.microsoft.com/kb/2545850。您可以判断这是否是您的问题,因为服务器重启会暂时解决错误。

然而在我的情况下,这不起作用。检查IIS中的设置我注意到在我的站点的“身份验证”部分下,启用了ASP.NET模拟(在web.config中将其设置为“true”)。我禁用了它,这解决了我的问题。