Сетевой диск недоступен при запуске

У меня есть приложение C#, которое загружается при запуске и записывает данные на сетевой диск, который смонтирован как X:

Когда машина загружается впервые, приложение выдает ошибку, что X:\ недоступен. Если я перезапустить приложение, та же ошибка.

Однако, если я открою Windows Explorer и дважды щелкну на диске, я смогу запустить приложение, и оно подключится к X: просто отлично.

Сетевые диски не инициализируются автоматически при запуске, несмотря на их сопоставление? Есть ли способ настроить их на автоматическую инициализацию?

2 ответа

Решение

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

Process mapDrive = new Process();
mapDrive.StartInfo.FileName = "net.exe";
mapDrive.StartInfo.Arguments = @"use c: \\server\share";
mapDrive.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
mapDrive.Start();

Таким образом, будет ли диск доступен при запуске или нет, он всегда будет доступен.

Посмотрите, как я могу получить доступ к подключенному сетевому диску здесь на SO для списка вещей, которые нужно проверить. Я предполагаю, что либо диск не существует для вашего пользователя, либо существует проблема с правами доступа к нему. Другой элемент для проверки - это порядок, в котором вы вызываете Impersonate, при условии, что вы это делаете, то есть.

Согласно " Невозможно получить доступ к файлам на подключенном диске из службы Windows", вам вообще не следует этого делать. См. Ссылки Microsoft, приведенные в принятом ответе.

Другие вопросы по тегам