我有一个文件系统任务,可以使用 UNC 路径将本地文件复制到远程驱动器。最近目标文件服务器被移动了,所以我更新了路径,但现在我收到了这个错误信息:
[File System Task] Error: File or directory "\\path\filename.ext" represented by connection "XYZ" does not exist.
该文件绝对存在;还有什么可能导致这个错误?
我可以将确切路径复制到“运行”对话框中,然后毫无问题地打开文件。我还可以浏览目标文件夹,并且可以在 VS 之外写入或删除文件。如果可能相关,我对父文件夹没有任何权限。
文件连接设置为现有文件。文件系统任务设置为覆盖。路径是硬编码的,不是表达式或变量。此报告已运行数月,现在更改的只是文件服务器和路径。旧路径也是UNC。
我在网上找到的大部分内容都与部署有关,但我是在运行包的服务器上开发的(我知道,这并不理想),使用的帐户与运行包的帐户相同。在任何情况下,通过 SQL 代理运行或在 VS 中调试时都会遇到相同的错误。
最令人抓狂的是,其他 SSIS 作业可以毫无问题地写入同一个文件夹。但是,这些包括重命名发布文件的后续执行脚本任务,因此在运行时不存在确切的目标文件。这个包只是每天覆盖同一个文件。如果我不能解决这个问题,我也会在这里添加这样的任务。
如果我删除目标文件,任务将运行...一次。第二天包将失败,因为目标将再次出现,似乎问题在于覆盖现有文件。当然我可以插入一个“删除”文件系统任务......除了它也声称目标不存在。
我试过重新创建文件连接和文件系统任务,没有变化。
最佳答案
很久以前我遇到了同样的问题,这个解决方案对我有用。
我的错误是由于使用了 UNC 路径,并且运行包的帐户无权访问 ALL
路径中的文件夹和文件。
SSIS 包内部试图列出 \\path
中的所有文件和目录,如果这样做会引发异常,则会收到该错误。
要解决这个问题,您需要确保运行 SSIS 包的帐户可以访问 ALL
您正在访问的路径中的文件夹和文件。
要检查这是否有效,请以相关帐户登录,或以指定用户身份运行命令窗口,然后检查您对所有文件和子目录是否具有完全权限。
也许你有同样的问题。值得一试。
关于visual-studio-2008 - SSIS 无法识别文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17491525/