У меня есть служба Windows, работающая в локальной системе, которая просто продолжает пытаться получить доступ к файлу с UNC-путем в форме \\ machine \ folder \ file.txt до тех пор, пока это не будет успешно выполнено. Он успешно завершается сразу же, когда я запускаю службу вручную, но при перезагрузке он получает системную ошибку 53 (сетевой путь не найден), пока я не выполню что-либо, например, выход из системы или «скрипта» с Windows Explorer , например двойной щелчок несвязанный текстовый файл (странно, я знаю). Но нет надежного трюка; Я не уверен, что вызывает внезапную возможность увидеть общую папку.
Однако я случайно нашел надежное «решение», которое заключается в попытке создать CreateProcess в «net use I: \\ machine \ folder» из службы для сопоставления общей папки перед попыткой доступа к ней (я продолжаю используя путь UNC, а не я :). Вызов net use
, по-видимому, немедленно активирует мою возможность доступа к общей папке из службы, несмотря на тот факт, что сам вызов net use
, вероятно, дает сбой (я не проверял, потому что вы даже не должны иметь возможность подключать диски из службы).
Это похоже на подключение к базе данных не работает, когда служба запускается при загрузке, но работает, когда она запускается вручную , но в моем случае это сетевая общая папка, плюс я знаю, что она также может внезапно просто запуститься работа в обстоятельствах, описанных выше.
Я не думаю, что это проблема с разрешениями, поскольку она демонстрирует возможности полного доступа к общей папке, когда ей удается получить доступ. Но я хотел бы знать причину, чтобы я мог справиться с этим должным образом.