我应该使用哪种方法从.net应用程序远程执行SSIS包?

时间:2015-06-10 19:28:08

标签: c# asp.net sql-server-2008 ssis dts

我需要从C#.net应用程序远程执行位于SSIS包存储中的SSIS包。

应用程序位于单独的服务器上,无法在应用服务器上安装集成服务。

我只使用文件系统方法在dev计算机上运行功能,因为我安装了集成服务以使其运行。现在我需要将其翻转以远程调用包。

现在我正在使用以下内容:

pkg = app.LoadFromDtsServer("\loadfile", "DBServer", Nothing)

但是我收到以下错误:

"连接到计算机上的Integration Services服务" DBServer"失败并出现以下错误:"访问被拒绝。"默认情况下,只有管理员才能访问Integration Services服务。在Windows Vista及更高版本中,该进程必须以管理权限运行才能连接到Integration Services服务。有关如何配置对服务的访问权限的信息,请参阅帮助主题。"

当然,在生产中运行此应用程序的用户将不会被授予数据库服务器上的此类权限。如何以sql用户身份运行?这是正确的方法吗?我知道还有其他选择。包不一定要存储在包存储中,但我相信这是最佳实践。

我还应该提到应用程序通过包变量传递文件名,因此任何解决方案都需要能够执行此操作。如果我创建一个工作来运行包,我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

如果要将参数从.NET应用程序传递到SSIS包,请检查以下链接以获取选项:

How to execute an SSIS package from .NET?

如果没有传递参数,那么更简单的方法是将SSIS包添加到作业,然后从.NET应用程序调用该作业。以下链接提供了一个代码示例:

http://www.roelvanlisdonk.nl/?p=1736

答案 1 :(得分:0)

您可以使用SSIS目录中的存储过程来部署项目并执行包

https://msdn.microsoft.com/en-US/library/jj820152.aspx?f=255&MSPPError=-2147217396