【问题标题】:SSIS Execute Process task does not write filesSSIS 执行进程任务不写入文件
【发布时间】:2016-11-20 11:39:19
【问题描述】:
  • 我有一个用 C# 编写的自定义 EXE(不是我写的)。它从 MongoDB 检索数据并将六个 CSV 文件写入它所在的同一文件夹中。

  • 我可以双击 EXE 并运行它——我确实需要以管理员身份运行它。我在属性中设置了管理员权限,因此它始终以管理员身份运行。它会弹出一个包含一些状态消息的窗口,然后在创建文件后关闭而不提示。

  • 我在 SSIS 的“执行进程”任务中列出了相同的 EXE(VS 2015,指向 SQL Server 2012)。当我运行它时,它会弹出相同的 cmd 窗口,给出相同的状态消息,在没有提示的情况下关闭,然后继续我的 SSIS 包中的下一步......但它不会写入任何文件。

  • 我为目标文件夹授予了“所有人”权限,这似乎没有帮助。我需要做什么?

【问题讨论】:

  • 您确定它写入的是与 EXE 相同的文件夹,而不是“当前”文件夹,它可以是任何东西吗?
  • @ESG,完全正确!它将文件放入“Microsoft SQL Server/110/DTS/Binn”。太棒了,谢谢你。如何让这个流程任务自动将它们放在我想要的位置?我将在其他计算机上运行它,所以不确定目标目录的位置。工作目录属性?
  • 当您从 Windows 资源管理器执行某些操作时,它会从当前文件夹运行它。当 SSIS 创建一个进程时,情况就不一样了。您是否在任务的属性中为“工作文件夹”选项设置了任何内容?
  • @ESG,我编辑了我的评论,但你是完全正确的。谢谢你。我认为我不能将您的评论标记为答案 - 我会在测试完 workingdirectory 属性后回来。

标签: ssis


【解决方案1】:

当进程从 SSIS 启动时,它不会从与可执行文件相同的文件夹中运行。这是执行外部进程的任何软件的典型情况。

幸运的是,您可以在执行流程任务属性中设置“工作文件夹”选项。如果您的可执行文件被写入当前文件夹,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多