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

本文关键字:程执行 执行 SSIS 应用程序 方法 net 我应该 | 更新日期: 2023-09-27 17:54:57

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

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

我在我的开发机器上只使用文件系统方法,因为我安装了集成服务以使其运行。现在我需要翻转它来远程调用软件包。

现在我使用下面的代码:

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

但是我得到以下错误:

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

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

我还应该提到,应用程序通过包变量传递文件名,因此任何解决方案都需要能够做到这一点。如果我创建一个作业来运行包,我不确定如何做到这一点。

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

如果您正在将参数从。net应用程序传递到SSIS包,请检查以下选项链接:

如何从。net执行一个SSIS包?

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

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

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

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