我想开发一个ASP.NET
网站,用户可以在其中选择SSIS Package
,提供一些参数并执行它。
我读到了Loading and Running a Remote Package Programmatically所以看起来从服务器y远程调用的服务器x运行SSIS Package
的唯一方法是使用SQL Server Agent
或编写手工制作的web服务。 这是正确的还是我错过了?
如果我选择使用SQL Server Agent
,我是否需要为每个包创建一个我想要执行的作业?另外,我能够远程阅读所有可用的SSIS包吗??
答案 0 :(得分:1)
如果您使用的是SQL2012或更高版本,则可以使用目录。搜索SSISDB将为您提供大量文章。
通过这种方式,您的Web应用程序可以查询目录,以找出可用于填充表单的包和参数。然后,您可以从应用程序发出TSQL语句以启动程序包运行。
答案 1 :(得分:1)
是的,你错过了另一个叫做
的方法或用于启动远程计算机上的程序包的远程组件
对我来说,这就像PsExec
您发现SQL Agent的挑战有两个方面。第一个是一次只能运行一个作业实例。也许您的网页只允许/假设一个用户一次运行FoobitzLoader.dtsx,但通常网站允许多个用户执行操作。
第二个挑战,也许这是可取的,是代理作业的运行是异步的。该过程看起来像
所以现在你正在查询msdb.dbo.sysjobhistory(我 think )表,寻找要完成的过程。也许这就是你想要的。也许不吧。通过PsExec调用SSIS包就像是“通常”
这可能是好事,也可能不是好事,因为您的用户可能会在进程运行时关闭网页并杀死dtexec进程。不确定你的用例,但这可能是你想要防范的事情。