2012-12-19 25 views
3

我尝试使用DirectoryEntry对象连接到远程Windows 7机器。这里是我的代码System.IO.FileNotFoundException:未找到网络路径。在Windows 7上使用DirectoryEntry对象时出现异常

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远程Windows 7的M/C。防火墙和UAC也关闭。问题是我在每台远程Windows 7机器上都遇到了这个问题。我试图把IP地址,而不是主机名,但在这种情况下,即使在本地机器上我得到以上例外。 nslookup命令能够解析远程m/c hostName。 这可能是什么原因?什么可以解决这个问题? 在此先感谢!

+0

Windows 7不是服务器操作系统,所以它实际上并不提供远程服务。 – Petesh

+0

这些计算机是域的一部分吗? – cheesemacfly

+0

您可以从命令行访问远程Windows 7计算机吗?也就是说,你可以做'dir \\ hostname \ directory'吗? –

回答

2

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

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

一旦在远程系统上执行了所有这些任务,您应该可以使用WinRT://remoteHost远程连接它。我在一些系统上测试过它,它工作正常。

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

2

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

我发现应该是一个修复程序的一个项目是Microsoft修补程序:http://support.microsoft.com/kb/2545850。您可以知道这是否是您的问题,因为重新启动服务器会暂时纠正错误。

但在我的情况下,这没有奏效。检查IIS中的设置我注意到,在我的网站的“身份验证”部分,启用了ASP.NET模拟(它在web.config中设置为“true”)。我禁用了它,并为我解决了这个问题。

+0

然而,刚刚遇到同样的问题,我们的应用程序已经部署了很长时间,并突然显示出这些症状。任何想法如何发生? (更新?) –

相关问题