使用Process.Start()打开C#打开不可用的网络路径

时间:2011-09-29 15:03:08

标签: c# .net windows network-programming unc

我正在通过网络打开目录:

System.Diagnostics.Process.Start(path); // path = UNC network path

但有两条网络路径:

\\This_PC_Does_Not_Exist\dir

\\This_PC_Is_Turned_Off\dir

为什么第一个需要非常快速地验证网络PC不存在,而第二个需要大约两分钟?如果我没错,那么在Windows环境中确定网络路径是否无法访问是30秒。

为什么在这种情况下花费这么长时间以及如何加快PC关闭的信息?

2 个答案:

答案 0 :(得分:6)

为了加载文件,Windows必须首先与该计算机建立文件共享连接。首先,它查找UNC名称以获取IP地址。如果机器不存在,则无法获取IP地址,并且会很快失败(如第一个示例中所示)。如果确实存在(如第二个示例中所示),则Windows必须尝试连接。

那么为什么超时应该是30秒需要两分钟?一种可能性是重试几次。另一种可能性是你有不同的网络协议,它必须尝试每一个。

答案 1 :(得分:1)

检查计算机是否打开的更快方法是ping计算机。指定您喜欢的任何超时。应该会在几秒钟内得到答复......

我想慢响应必须做一些事情,关闭的计算机的名称仍然在网络中已知并与ip相关联。然后选择更长的超时,因为计算机应该在那里......