我正在尝试使用我的Windows服务(作为网络服务运行)中的File.Copy()
复制文件。
File.Copy(sourceFile, targetFile, true);
麻烦的是,当目标位于映射的网络驱动器上时,我收到错误:
找不到路径'Z:\ copiedfile.txt'
的一部分
我发现someone else在2006年遇到了这个问题,但是这个帖子有一个不愉快的结局:OP放弃并找到了解决方法。
过去7年是否发现了任何解决方案?
答案 0 :(得分:5)
映射是每用户会话项,这意味着虽然映射可能存在于您的桌面上,但它在服务中不存在。您需要使用UNC路径来复制文件。
答案 1 :(得分:2)
服务不应直接访问本地或网络资源 通过映射驱动器号。此外,服务不应使用 WNetXXXXXXX API用于添加,删除或查询任何映射驱动器 字母。虽然WNetXXXXXXX API可能会成功返回,但是 结果不正确。服务(或正在运行的任何进程) 在不同的安全上下文中)必须访问远程资源 应该使用通用命名约定(UNC)名称来访问 资源。