Сетевой диск недоступен при запуске
У меня есть приложение 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, приведенные в принятом ответе.