我正在尝试使用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。 这可能是什么原因?什么可以解决这个问题? 提前致谢 !!
答案 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”)。我禁用了它,这解决了我的问题。