【发布时间】:2013-11-13 14:35:08
【问题描述】:
我的 SSIS 包有一个相当奇怪的问题。在处理目录中的一些文件后,我将删除目录,因此我的 For Each 循环不会再次处理相同的文件。
它无法删除目录,但仍将其留在文件夹中,然后告诉我我无权访问此文件夹,我无法获得它的所有权,甚至无法将其移动到另一个目录。
我什至尝试了一个 VB.NET 脚本任务来尝试删除它,我得到了相同的结果。
重新启动服务器会使文件夹消失 - 以前有没有人遇到过这种情况。
问候,
JML
【问题讨论】:
-
为什么需要删除目录?如果里面什么都没有,那么无论如何都没有什么要处理的? “删除目录失败”是指包抛出错误指示失败,还是即使包说它已删除,您仍然可以在 Windows 资源管理器中看到该目录?鉴于重新启动的结果,听起来该文件夹确实已被删除,向您展示这一点很慢。如果你进入 CMD 并输入 DIR 是否可见?
-
最初创建目录的是哪个用户?您是如何启动 SSIS 包的?在本地还是您将其部署在服务器上?可能是当您启动 SSIS 包时 - 例如在服务器机器上 - 它使用与您当前登录的用户不同的用户执行。然后您的目录将使用不同的帐户创建,这可能会导致该文件夹的不同安全设置......只是一个想法。
-
我删除了该目录,因为 SSIS 包循环遍历目录,每个目录名称都是唯一的客户端引用。如果存在文件夹/目录,则该机制将其视为要在包中处理的客户端。基本上删除文件夹就不需要处理它。最初创建目录的用户是在 Outlook 的 VBA 任务中完成的保存过程。一封电子邮件进来,附件被保存,文件夹由电子邮件正文中的一些信息确定。
-
SSIS 包是通过 SQL 代理启动的,尽管相同的进程在我的 devenv 中本地运行包失败。尽管我会尝试调查安全问题,但它在服务器和本地都失败了。我可以自己删除文件夹而不会出现问题 - 只有当诸如 SSIS 或其他进程之类的东西试图删除它时。为回复干杯。
-
ElectricLlama - 该文件夹在 CMD 中仍然可见,但是如果我尝试使用 CMD 访问它,它会显示访问被拒绝。一旦我重新启动盒子 - 文件夹就消失了。