繁体   English   中英

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

[英]Which method should I use to execute an SSIS package remotely from a .net application?

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

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

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

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

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

但是我收到以下错误:

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

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

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

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

如何从.NET执行SSIS包?

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM