从c#web app调用SSIS并显示进度

我有一个SSIS包,可以将excel文件中的数据加载到数据库中.

用户转到Intranet页面(正常的c#.net 4.0 Web应用程序),选择要上载的文件,然后单击按钮.该按钮将文件复制到服务器,然后启动调用包的SQL作业.这工作正常和花花公子,但用户不知道什么时候工作完成.

向用户显示软件包已完成(或失败)的最佳方法是什么?

我见过像-http://www.programminghelp.com/database/sqlserver/sql-server-integration-services-calling-ssis-package-in-c/这样的链接,但这是针对C#Console Project的.使用Web应用程序执行此操作的最佳方法是什么?

最佳答案 有很多方法可以做到这一点,但如果您正在寻找一种简单的方法,那么您可以使用System.Net.Mail命名空间中的
SmtpClient class在作业完成时向用户发送电子邮件. (该页面上有一个很好的,简单的代码片段,您可以轻松地重复使用.)当然,您必须设置一个发送帐户(例如,no-reply @ myAutomatedJobThing.com)并知道用户的电子邮件地址.

这是否是您的场景中的最佳解决方案是值得商榷的,但我已经看到它被用于(并自己使用)用于许多系统,其中这样的过程需要相当长的时间,比如几分钟或更长.如果您的导入只需几秒钟,那么电子邮件解决方案可能会过度.

一个更简单的AJAX风格的解决方案可能涉及浏览页面(启动后),该页面通过计时器轮询作业并在页面中显示进度.即使是自动重载也可能有效.您需要的元数据是用户执行的作业的唯一标识符.

点赞