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

标签 c# .net windows network-programming unc

我正在使用以下方式通过网络打开目录:

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

但是有 2 个网络路径:

\\This_PC_Does_Not_Exist\dir

\\This_PC_Is_Turned_Off\dir

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

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

最佳答案

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

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

关于C# 使用 Process.Start() 打开不可用的网络路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599341/

相关文章:

c# - 无法获取多播委托(delegate)中的第一个方法名称

c# - asp .net 和 asp .net core 有什么区别?

c# - ClientConnectionId 的单声道等效项

c# - Range[] 而不是 get_Range()

c# - 一个简单的 .NET 消息系统

.net - 交叉类型 LINQ

c# - 在桌面上部署 .NET (C#) exe 应用程序

c# - 使用 Javascript 或 Web 表单的 Web 爬网站点

windows - 编辑特定 URL 的 HOSTS 文件?

windows - 混帐(窗口); P4merge 作为 mergetool 错误