1

我是 SSIS 新手,在从远程服务器读取文件时遇到问题

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

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

    \\myserver\myfolder\myfile.txt

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

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

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

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

在 SSIS 中使用 UNC 是否可见?执行此任务的标准方法是什么?

以下是我试图实现的完整工作流程:

全貌

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

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

  1. Web 应用程序 X 在服务器server-web上运行
  2. SSIS 包 Y 在服务器server-ssis上运行
    1. 访问服务器server-database上的数据库
    2. 访问服务器服务器文件系统上的 UNC

通过运行此处提到的存储过程执行存储过程来运行包http://msdn.microsoft.com/en-us/library/ff878099.aspx

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

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

2 回答 2

1

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

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

于 2013-01-08T22:13:35.547 回答
0

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

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

  1. 使用 SQL 代理作业
  2. 使用网络服务

还有第三种调用 SSIS 的方法,我正在尝试使用存储过程http://msdn.microsoft.com/en-us/library/ff878099.aspx但是在跨多个服务器跃点工作时出现问题 kerberos 委托在此处解释

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

于 2013-02-08T18:32:32.933 回答