我有一个应用程序,无论何时将文件上传到目录,我都必须调用SSIS来解析XML文件.
我可以直接从.NET Windows服务调用SSIS吗?
以编程方式运行SSIS包.
我更喜欢第二种方法:
启动DTEXEC.EXE进程.DTEXEC是用于执行SSIS包的命令行实用程序.请在此处查看其命令行选项:http://msdn2.microsoft.com/en-us/library/ms162810.aspx
优点:运行包退出过程获得可靠性.可以从任何编程语言(包括.NET 1.1 :)使用.通过设置变量值轻松传递参数.
缺点:也是本地的.更难获得有关包进度的信息(但SSIS日志记录可以为您提供最多功能).启动新进程的一些开销(与大包的执行时间相比可能很小).
ASP.NET特定:Win32 CreateProcess函数忽略线程模拟.因此,如果您希望DTEXEC在与ASP.NET进程帐户不同的帐户下运行,您应该让用户输入名称/密码并将其传递给Process.Start,或者使用以下KB中描述的方法在模拟帐户http下运行子进程://support.microsoft.com/kb/889251.