我需要从ASP.NET C#页面上单击加载并执行SSIS或DTS包,单击按钮并在执行结束时报告成功或失败,如果它失败的细节应该显示给用户。它需要是异步的,因为工作可能需要很长时间才能完成。用户应该也可以在运行时取消程序包的执行,如果他愿意的话。还需要并行执行多个程序包并跟踪每个程序包的进度。这是可能实现OR过于复杂,从ASP.NET做到这一点?如果您有任何示例代码或链接,请告诉我。提前致谢。从ASP.NET异步执行SSIS或DTS包装
回答
我解决了这个问题,方法是在表中将DTS/SSIS包执行的用户请求排队,然后在Windows服务中读取它们并通过使用ThreadPool类产生线程并行执行它们。它工作正常。谢谢。这种方法的缺点是轮询,使其事件驱动,创建一个WCF服务,并将其托管在Windows服务将是最好的,我会接下来尝试。感谢你的回复。顺便说一句,我不能使用SQL Server代理,这是不允许的,因为我的公司的IT政策。
您可能会考虑的解决方案是使用SQLServer作业。您可以将软件包设置为有或没有运行计划的作业。您可以通过在msdb系统数据库中运行存储过程和查询来启动,取消,获取作业状态并获取失败信息。您可以运行ASP.NET C#页面中的过程和查询。
在作业中运行SSIS/DTS包是常用的方法。而且,该解决方案还允许您使用Management Studio来管理这些作业。
感谢您的回复,但这是如何工作的? SSIS/DTS包存储在网络服务器上。我需要在网络服务器上创建一个作业吗?如果是这样,我是否需要在其上安装SQL组件来创建作业(不确定我公司的服务器策略是否允许这样做)?存储过程如何知道位于其他位置的作业? – RKP 2010-08-12 13:55:51
你确定SSIS/DTS在网络服务器上吗?它们应该是DB的一部分... – 2010-08-12 14:16:59
是的,SSIS/DTS包不在数据库中,它们存储在Web服务器上的文件系统上。如果我需要创建一个作业并使用存储过程调用它,那么是否需要在Web服务器上安装任何SQL组件?如果没有,我将不得不在我原来的问题中选择。 – RKP 2010-08-12 14:35:49
您可以使用Rhino ETL代替SSIS。这是一个功能完备的ETL库,它允许您使用C#编写ETL作业。
ETL ?? ahhh谢谢Google:** E ** xtract ** T ** ransform ** L ** oad – 2013-07-17 10:38:36
- 1. 从Sql Server 2005执行DTS包
- 2. 通过SQL代理执行DTS 2000包时SSIS 2008失败
- 3. 在工作中运行SSIS和DTS包的安装要求
- 4. ASP.NET/WCF - 异步执行Server.Execute
- 5. ASP.net MVC异步执行
- 6. 从Visual Studio SSIS包执行
- 7. 从c#执行SSIS包#
- 8. 执行SSIS包
- 9. 异步调用SSIS包
- 10. 如何将DTS包转换为SSIS包?
- 11. 将DTS包升级为SSIS包
- 12. 从未安装集成服务的C#执行SSIS包装
- 13. C#异步异常包装
- 14. 异步执行
- 15. 异步执行
- 16. 如何使SSIS包看起来像DTS
- 17. ASP.NET异步任务执行序列
- 18. 从SSIS包执行多个SSRS报告
- 19. 不能从vb6执行SSIS包
- 20. 从SSIS包执行R脚本
- 21. 从.NET执行SSIS包的问题
- 22. 从SSIS包执行SQL文件
- 23. 从远程服务器执行SSIS包
- 24. 从文件系统运行SSIS包装
- 25. SSIS包无法执行
- 26. 如何执行包SSIS 2008
- 27. SSIS包执行(截断表)
- 28. 在Sharepoint执行SSIS包
- 29. 错误执行SSIS包
- 30. Nodejs异步执行
如果你有多个池,那么你需要一个公共的数据库表和一个单独的类来处理这个并行执行的问题。不是一件容易的事,我们有这样的一个,但我们有很多小时的工作和它的习惯。 – Aristos 2010-08-12 10:37:23