我们有一个Buffalo NAS驱动器作为备份驱动器。
当我们将此驱动器映射为B:\
时,我们的备份应用程序似乎理解这一点并作为应用程序运行。
但是当作为服务运行时,它无法识别映射和崩溃。
我尝试将路径设置为\\\192.168.x.x\Backups\
作为备份路径,服务运行但很多子模块失败,因为它将\\\
视为转义字符。
解决方法是什么,以便Windows服务可以看到映射的驱动器。
我正在尝试通过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类型,我无法将其更改为任何其他类型,否则我将不得不在其他地方重新定义它。我应该使用多少反斜杠?
答案 0 :(得分:1)
在NAS共享的某处创建符号链接:
mklink /D c:\nas-backups \\192.168.x.x\Backups
并将备份应用程序指向c:\nas-backups\etc
。
答案 1 :(得分:1)
您可以使用WNetAddConnection2 API函数在服务内部映射网络驱动器。
答案 2 :(得分:0)
最简单的方法可能是访问网络路径
string path = @"\\192.168.x.x\Backups\";
您必须确保的另一件事是该服务可以访问此路径。如果您的服务以无权访问的用户身份登录,则必须将服务的登录凭据更改为可以访问此路径的用户/域帐户。
答案 3 :(得分:0)
尝试在“看到”网络的用户下运行您的服务,例如“网络服务”用户,或者甚至是映射网络驱动器的“人”用户。