Windows服务无法识别网络路径.变通办法是什么?
Windows service does not recognize network path. Whats the workaround?
我们有一个Buffalo NAS驱动器作为备份驱动器。
当我们将这个驱动器映射为B:
时,我们的备份应用程序似乎理解了这一点,并作为一个应用程序运行。
但是当作为服务运行时,它不能识别映射并崩溃。
我尝试将路径作为\192.168.x.xBackups
作为备份路径,服务运行,但随后许多子模块失败,因为它将\
视为转义字符。
如何使windows服务可以看到映射的驱动器?
我试图通过CreateProcess()
运行zip.exe;
""C:UsersjvenkatrajDocumentsSQLiteDebugzip.exe" -9 -q -g -u "\192.168.123.60Backupstorelocation150f22543d888b968498d2bd0 89e7edfz.zip" "\192.168.123.60BackupstoretempSPD405.tmpfile_contents""
反斜杠混淆了引号。它是一个WCHAR类型,我不能把它改成其他类型,否则我还得在别处重新定义它。我应该使用多少个反斜杠?
您可以使用WNetAddConnection2 API函数在服务本身内部映射网络驱动器。
创建一个到NAS共享的符号链接:
mklink /D c:nas-backups \192.168.x.xBackups
并将备份应用程序指向c:nas-backupsetc
。
尝试在"看到"网络的用户下运行您的服务,例如"网络服务"用户,甚至作为映射网络驱动器的"人类"用户。
最简单的方法可能是访问网络路径
string path = @"\192.168.x.xBackups";
您必须确保的另一件事是服务可以访问该路径。如果您的服务是作为没有访问权限的用户登录的,您必须将服务的登录凭据更改为具有访问此路径的用户/域帐户。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 部署在张量流中训练的神经网络来火炬C++的最佳方法是什么?
- 对于C 和单声道的轻质RUDP网络库的合适选择是什么?
- 计算差异数据并通过网络发送的最佳方式是什么
- 通过网络中的套接字进行文件传输时,该程序中的文件传输错误是什么
- 对于tanh激活函数神经网络,对负/非数值数据进行归一化的最佳方法是什么
- 通过网络调用函数的最佳方式是什么
- 保护 Cap'n Proto RPC 网络流量的好方法是什么?
- 在c/c++中实现神经网络的方法是什么?
- 在我的神经网络程序中使用的最有效的数据结构是什么?我的程序需要动态分配吗?
- Windows服务无法识别网络路径.变通办法是什么?
- "#pragma pack"在网络编程中的作用是什么