1

我正在尝试使用File.Copy()我的 Windows 服务(作为网络服务运行)复制文件。

File.Copy(sourceFile, targetFile, true);

麻烦的是,当目标位于映射的网络驱动器上时,我收到一个错误:

找不到路径“Z:\copiedfile.txt”的一部分

我在 2006 年找到了其他人遇到此问题,但该线程的结局并不愉快:OP 放弃并找到了解决方法。

在过去的 7 年中是否发现了任何解决方案?

4

2 回答 2

5

映射是每个用户会话项,这意味着虽然映射可能存在于您的桌面上,但它不存在于服务中。您将需要使用 UNC 路径来复制文件。

于 2013-09-16T12:53:57.203 回答
2

服务不应通过映射的驱动器号直接访问本地或网络资源。此外,服务不应使用 WNetXXXXXXX API 添加、删除或查询任何映射的驱动器号。尽管 WNetXXXXXXX API 可能会成功返回,但结果将不正确。必须访问远程资源的服务(或在不同安全上下文中运行的任何进程)应使用通用命名约定 (UNC) 名称来访问资源。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/f9a702da-724b-4acc-a1bb-ac4d225838c8/copy-file-to-a-mapped-drive

http://support.microsoft.com/kb/180362/en-us

于 2013-09-16T12:55:58.603 回答