C # открытие недоступного сетевого пути с Process.Start () - PullRequest
8 голосов
/ 29 сентября 2011

Я открываю каталоги по сети, используя:

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

Но имея 2 сетевых пути:

\\This_PC_Does_Not_Exist\dir

\\This_PC_Is_Turned_Off\dir

Почему сначала нужно очень быстро проверить, что сетевой ПК не работает?не существует, а 2-й занимает около двух минут?Если я не ошибаюсь, в среде Windows 30 секунд, чтобы определить, недоступен ли сетевой путь.

Почему в этом случае так много времени и как ускорить информацию о том, что ПК выключен?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

Чтобы загрузить файл, Windows сначала должна подключиться к компьютеру для обмена файлами. Сначала он ищет имя UNC, чтобы получить IP-адрес. Если машина не существует, она не может получить IP-адрес и быстро выходит из строя (как в первом примере). Если он существует (как во втором примере), Windows должна попытаться подключиться.

Так почему же требуется две минуты, когда время ожидания должно быть 30 секунд? Одна возможность состоит в том, что это повторяет несколько раз. Другая возможность состоит в том, что у вас разные сетевые протоколы, и он должен попробовать каждый из них.

1 голос
/ 29 сентября 2011

Более быстрый способ проверить, включен ли компьютер, - это проверить связь с компьютером.Укажите любое время ожидания.Через несколько секунд должен появиться ответ ...

Я полагаю, что медленный ответ должен быть связан с тем, что имя выключенного компьютера все еще известно в сети и связано с IP-адресом.Затем выбирается более длительное время ожидания, так как компьютер должен быть там ...

...