我是SSIS的新手,面临从远程服务器读取文件的问题
我在项目级别定义了一个平面文件连接,其中ConnectionString
由变量说@AbsoluteFilePath
定义。
@AbsoluteFilePath
的值在运行时计算到UNC说:
\\myserver\myfolder\myfile.txt
我有一个Web应用程序,它调用包的执行。
我能够以登录用户的身份查看文件夹,但是在读取文件时,包的执行会以错误结束。
执行失败,错误消息为return code 0XC020200E
我尝试将我的UNC \\myserver\myfolder
映射到运行SQL 2012的计算机上的Z:
。然而,这也给了我同样的错误。
在SSIS中使用UNC是否明智?执行此任务的标准方法是什么?
以下是我想要实现的完整工作流程:
完整图片
用户在Web前端选择一个文件。 Web应用程序保存 文件在共享驱动器上并调用SSIS包来运行。 SSIS package从共享驱动器读取文件并执行所需的操作 行动吧。
更新:解释权限并从存储过程运行SSIS包
通过运行此处提到的存储过程http://msdn.microsoft.com/en-us/library/ff878099.aspx
执行存储过程来运行包server-web 使用的连接字符串格式为
Data Source=server-ssis;Initial Catalog=SSISDB;Integrated Security=SSPI;
答案 0 :(得分:1)
我敢打赌dumplin这是一个权限问题(除了搜索0XC020200E
会产生文件权限命中的事实)。
检查运行Web应用程序的帐户的权限。需要为该共享授予权限。它适用于您的帐户或登录用户,但可能不运行该程序包的帐户。
答案 1 :(得分:0)
@ user1826905你是对的,使用SQL Agent Job来调用SSIS包被证明是从Web应用程序调用SSIS包的最简单方法。
此链接http://msdn.microsoft.com/en-us/library/ms403355.aspx提供了两种不同的方式来调用SSIS包
调用SSIS的第三种方法是我尝试使用存储过程http://msdn.microsoft.com/en-us/library/ff878099.aspx,但在跨多个服务器跃点工作时遇到问题kerberos代表团解释here
由于在跳转后访问更改为匿名用户,我们仍在努力使用此方法访问UNC