【问题标题】:Deploying and calling SSIS package from .NET从 .NET 部署和调用 SSIS 包
【发布时间】:2010-05-22 15:13:32
【问题描述】:

我有一个 SSIS 包,计划部署在我的 SQL Server 2008 机器上。

我需要从 .NET 远程同步调用此 SSIS 包。显然我也需要将参数传递给这个包。

我该怎么做?

谢谢, 亚历克斯

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:

    您可以创建一个作业,然后使用 sp_start_job 从直接 SQL 启动该作业。这将是异步的。

    在服务器上运行,它需要访问您可能正在读入或写出的任何文件(它还需要有包 - 所以如果您从模板或其他东西代码生成包,把它放到服务器上可能是个问题)。

    您还可以使用psexec 在任何远程服务器上运行进程。在这种情况下,它将运行dtexec。这将绕过必须启用 xp_cmdshell。 (同样的问题需要查看包并查看任何文件)

    【讨论】:

    • 这与我个人在面对此任务时使用的类似。如果作业仍在运行,我还必须编写一个路由来轮询 - 使其同步 - 它最终成为一个简单的存储过程。我尝试了 sp_start_job 和 psexec 两种方法(以及带有 schtask 命令的 windows 任务调度程序),它们都可以根据您的特定场景、要求和基础设施工作
    【解决方案2】:

    如果您的 SQL 服务器处于安全环境中,您可以尝试使 SSIS 包可从 Stred 过程运行,那么我认为您的代码可以轻松调用 SQL 服务器上的存储过程。

    考虑到您必须启用 xp_cmdshell(至少我知道 SQL2005),根据服务器安全性,这总是被称为危险任务。

    【讨论】:

      【解决方案3】:

      另一种方法是编写简单的应用程序,公开一个允许执行包的 Web 服务 - SQL 联机丛书有一个很好的示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 2017-02-20
        • 2016-08-29
        • 1970-01-01
        相关资源
        最近更新 更多