从ASP.NET异步执行SSIS或DTS包

时间:2010-08-12 10:26:53

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

我需要在点击按钮时从ASP.NET C#页面异步加载和执行SSIS或DTS包,并在执行结束时报告成功或失败,如果失败,则应显示异常的详细信息用户。它需要是异步的,因为工作可能需要很长时间才能完成。用户还应该能够在程序运行时取消程序包的执行,如果他愿意的话。还需要并行执行多个包并跟踪每个包的进度。从ASP.NET可以实现OR太复杂吗?如果您有任何示例代码或链接,请告知我们。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可能考虑的解决方案是使用SQLServer作业。您可以将包设置为具有或不具有运行计划的作业。您可以通过在msdb系统数据库中运行存储过程和查询来启动,取消,获取作业状态并获取失败信息。您可以从ASP.NET C#页面运行过程和查询。

在作业中运行SSIS / DTS包是一种常见的方法。而且,此解决方案还允许您使用Management Studio来管理作业。

答案 1 :(得分:1)

我通过在表中排队用户对DTS / SSIS包执行的请求并在Windows服务中读取它们并通过使用ThreadPool类生成线程并行执行它来解决它。它工作正常。谢谢。这种方法的缺点是轮询,使其成为事件驱动,创建一个WCF服务并将其托管在Windows服务中是最好的,我将在下一步尝试。感谢你的回复。顺便说一句,我不能使用sql server agent,根据我公司的IT政策是不允许的。

答案 2 :(得分:0)

您可以使用Rhino ETL代替SSIS。这是一个完全成熟的ETL库,允许您使用C#编写ETL作业。