2016-08-18 45 views
0

我正在尝试创建一个简单的SSIS包,该包可以部署到具有SSIS的另一个域(同一台计算机)上的VM。如果我只是从源计算机上的SSDT运行数据流,但是我尝试部署并执行它时,它创建的包将传输数据,但似乎有2个错误。第一个是它无法打开数据文件“C:\ SSIS \ Product Data.txt”。第二个是平面文件源1未能执行预执行阶段。我认为第二个错误是由第一个错误引起的。有谁知道如何创建一个可以在没有平面文件源的情况下将数据传输到另一台计算机的软件包? 在此先感谢!平面文件源在部署和执行时失败

回答

0

C:\ SSIS ....将引用执行程序包的计算机的本地C驱动器。因此,如果你在虚拟机上拥有它,它将位于\ VM \ C $。通常它意味着2件事中的1件。

1)文件路径不正确,你没有引用文件的实际位置。

2)您执行包的用户没有该文件的权限。

那么你在执行SSIS包的机器的C驱动器上的文件在哪里?这个问题的答案在你的问题中并不清楚。

第二步如何执行文件?手动执行,如DTS_Exec? SQL代理? T-SQL?如果手动,那么登录执行该任务的用户必须具有权限,如果SQL Agent那么sql代理服务帐户和可能的sql服务器服务帐户必须具有该文件的权限,并且T-sql sql server服务帐户需要具有权限。

当它是本地文件路径时,则本地用户或域用户将为服务帐户工作。如果网络路径,则用于服务帐户的本地用户将不起作用,您需要设置一种作为不同凭据运行的方式。

+0

在处理完它之后,我认为问题在于VM无法访问该文件。 SSMS中的连接字符串就是源计算机上文件的路径。我无法从正在执行的VM上的任何位置找到文件中的数据。我需要虚拟机能够执行包,就好像它没有连接到源代码一样。你知道一种通过部署发送文件的方法吗?我相当确信这将解决我的问题。谢谢! –

+0

我不知道如何通过可能是谷歌的部署来实现它,它将取决于您使用的部署模型的类型(项目或包)。通过SSIS文件系统任务或脚本任务很容易将它从一个移动到另一个,但是你确实提到它们位于不同的域中,这使得它变得更加困难.... – Matt