Служба Windows не распознает сетевой путь. Какой обходной путь? - PullRequest
1 голос
/ 18 августа 2011

В качестве диска резервного копирования используется диск NAS от Buffalo.

И когда мы отображаем этот диск как B:\, наше приложение резервного копирования, похоже, понимает это и работает как приложение.

Но при запуске в качестве службы он не распознает сопоставление и вылетает.

Я попытался указать путь как \\\192.168.x.x\Backups\ в качестве пути резервного копирования, служба запускается, но затем многоСбой подмодулей, потому что он видит \\\ как escape-символ.

Что такое обходной путь, чтобы служба Windows могла видеть подключенный диск.

Я пытаюсь запустить zip.exe черезa CreateProcess();

""C:\Users\jvenkatraj\Documents\SQLite\Debug\zip.exe" -9 -q -g -u "\\\192.168.123.60\Backup\store\location1\50\f2\25\43\d8\88\b9\68\49\8d\2b\d0\08\9e\7e\df\z.zip" "\\\192.168.123.60\Backup\store\temp\SPD405.tmp\file_contents""

Обратные слеши путаются в кавычках.И это тип WCHAR, и я не могу изменить его на какой-либо другой тип, иначе мне придется переопределить это в другом месте.Сколько обратных косых черт я должен использовать?

Ответы [ 4 ]

1 голос
/ 20 августа 2011

Вы можете подключить сетевой диск внутри самой службы, используя функцию API WNetAddConnection2.

1 голос
/ 18 августа 2011

Создайте символическую ссылку где-нибудь на общий ресурс NAS:

mklink /D c:\nas-backups \\192.168.x.x\Backups

и укажите в приложении резервного копирования c:\nas-backups\etc.

0 голосов
/ 18 августа 2011

Попробуйте запустить службу под пользователем, который «видит» сеть, например, «сетевой сервис» или даже как «человек», подключивший сетевой диск.

0 голосов
/ 18 августа 2011

Самый простой способ сделать это, вероятно, получить доступ к сетевому пути

string path = @"\\192.168.x.x\Backups\";

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

...