【问题标题】:SSIS File System Task Deleting Directory Leaves Directory and Removes all PermissionsSSIS 文件系统任务删除目录离开目录并删除所有权限
【发布时间】: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 访问它,它会显示访问被拒绝。一旦我重新启动盒子 - 文件夹就消失了。

标签: sql vb.net ssis


【解决方案1】:

听起来该目录仍在“使用中”,但正在等待删除。重新启动时,目录上的锁定被清除,删除完成。讨论在

try ing to move a file "The process cannot access the file because it is being used by another process."

可能会有所帮助。

【讨论】:

    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多