通过Web服务执行长时间运行SP的替代解决方案

时间:2013-04-16 13:54:08

标签: c# asp.net sql-server

我需要告诉数据库处理程序它应该运行一个生成300-500MB数据的脚本,然后通知我的C#应用​​程序脚本已经完成。

之后我需要将新创建的数据提供给我的C#应用​​程序,对其进行操作然后将其发送到FTP服务器。

执行此操作的一种方法是通过Web服务调用SQL服务器,让Database Handler运行脚本,然后返回数据。然后,C#应用程序将操纵数据并最终通过FTP发送。但是由于数据的大小和脚本的运行时间大约是1小时,这种方法远非最佳。

有关更好解决方案的任何建议吗?

编辑:我忘了提到一些重要的部分。 SSIS也是我想到的。问题是数据库位于不同的服务器上,该服务器没有打开端口以通过FTP发送。

3 个答案:

答案 0 :(得分:0)

我会将此作为服务实现。使用Web服务允许用户请求执行脚本(排队请求),但实际上从服务执行脚本(读取队列并执行操作)。您可以从服务中更好地控制整个数据收集和交付流程。

答案 1 :(得分:0)

我自己的策略是开发一个独立的应用程序(安装在服务器上)来执行数据检索,操作和FTP传输。由于某些用户交互可能会使ASP.NET应用程序中的代码执行此应用程序,并且可以更新数据库的进度,以便您的用户可以通过ASP.NET Web界面获得一些反馈(ajax轮询或加载状态页面。)

答案 2 :(得分:0)

您是否考虑过使用SSIS?其中一项非常有用的功能是控制以数据为中心的多步骤工作流程。