在多个服务器跃点上运行SSIS包的问题

时间:2013-01-08 22:09:33

标签: ssis unc

我是SSIS的新手,面临从远程服务器读取文件的问题

  1. 我在项目级别定义了一个平面文件连接,其中ConnectionString由变量说@AbsoluteFilePath定义。

  2. @AbsoluteFilePath的值在运行时计算到UNC说:

    \\myserver\myfolder\myfile.txt

  3. 我有一个Web应用程序,它调用包的执行。

  4. 我能够以登录用户的身份查看文件夹,但是在读取文件时,包的执行会以错误结束。

    执行失败,错误消息为return code 0XC020200E

  5. 我尝试将我的UNC \\myserver\myfolder映射到运行SQL 2012的计算机上的Z:。然而,这也给了我同样的错误。

  6. 在SSIS中使用UNC是否明智?执行此任务的标准方法是什么?

    以下是我想要实现的完整工作流程:

      

    完整图片

         

    用户在Web前端选择一个文件。 Web应用程序保存   文件在共享驱动器上并调用SSIS包来运行。 SSIS   package从共享驱动器读取文件并执行所需的操作   行动吧。

    更新:解释权限并从存储过程运行SSIS包

    1. Web应用程序X在服务器上运行 server-web
    2. SSIS包Y在服务器 server-ssis 上运行
      1. 访问服务器上的数据库 服务器数据库
      2. 访问服务器上的UNC server-filesystem
    3. 通过运行此处提到的存储过程http://msdn.microsoft.com/en-us/library/ff878099.aspx

      执行存储过程来运行包

      server-web 使用的连接字符串格式为

      Data Source=server-ssis;Initial Catalog=SSISDB;Integrated Security=SSPI;
      

2 个答案:

答案 0 :(得分:1)

我敢打赌dumplin这是一个权限问题(除了搜索0XC020200E会产生文件权限命中的事实)。

检查运行Web应用程序的帐户的权限。需要为该共享授予权限。它适用于您的帐户或登录用户,但可能运行该程序包的帐户。

答案 1 :(得分:0)

@ user1826905你是对的,使用SQL Agent Job来调用SSIS包被证明是从Web应用程序调用SSIS包的最简单方法。

此链接http://msdn.microsoft.com/en-us/library/ms403355.aspx提供了两种不同的方式来调用SSIS包

  1. 使用SQL代理作业
  2. 使用网络服务
  3. 调用SSIS的第三种方法是我尝试使用存储过程http://msdn.microsoft.com/en-us/library/ff878099.aspx,但在跨多个服务器跃点工作时遇到问题kerberos代表团解释here

    由于在跳转后访问更改为匿名用户,我们仍在努力使用此方法访问UNC