Проверьте наличие UNC-соединения - PullRequest
0 голосов
/ 03 января 2012

Мне нужно убедиться, что мое приложение может подключаться к общему ресурсу C $ по умолчанию на удаленном сервере в сети.У кого-нибудь есть действительно способ, которым я могу это сделать?Первоначально я делал что-то вроде этого:

Dim ProcessStartInfo As New System.Diagnostics.ProcessStartInfo
ProcessStartInfo.FileName = "net"
ProcessStartInfo.Arguments = "use \\" & strComputer & "\c$ /USER:" & strUsername & " " & strPassword
ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
System.Diagnostics.Process.Start(ProcessStartInfo)

Но иногда это может быть ненадежным и зависать, возвращаться слишком долго и т. Д. Какой бы метод я ни использовал, он должен быть в состоянии предоставить учетные данные и, если это вообще возможно,при сбое соединения мне нужно знать, почему это не удалось.

1 Ответ

1 голос
/ 03 января 2012
Dim dir As New IO.DirectoryInfo("\\10.101.1.200\c$")

dir.exists затем сообщит вам, удалось ли подключиться.

Это попытается подключиться как учетная запись, из которой была запущена программа.Если вам нужны разные учетные данные, вам может понадобиться обратиться к «Олицетворению».

Вы можете напрямую вызывать функции Windows через pInvoke, но это становится более сложным.Пример можно найти здесь. C #: как войти в общий ресурс при использовании DirectoryInfo

...