我有一个 SSIS 包,可以将数据从 excel 文件加载到数据库。
用户转到内部网页(普通的 c# .net 4.0 网络应用程序),选择他们要上传的文件,然后单击按钮。该按钮将文件复制到服务器,然后启动调用包的 SQL 作业。这工作正常而且花花公子,但用户不知道工作何时完成。
向用户显示包已完成(或失败)的最佳方式是什么?
我见过这样的链接 - http://www.programminghelp.com/database/sqlserver/sql-server-integration-services-calling-ssis-package-in-c/但这是针对 C# 控制台项目的。使用 Web 应用程序执行此操作的最佳方法是什么?
最佳答案
有很多方法可以做到这一点,但如果您正在寻找一种简单的方法,那么您可以使用 SmtpClient class在 System.Net.Mail 命名空间中,在作业完成时向用户发送电子邮件。 (该页面上有一个很好、简单的代码片段,您可以轻松地重复使用。)当然,您必须设置一个发送帐户(例如 no-reply@myAutomatedJobThing.com)并知道用户的电子邮件地址。
这是否是您场景中的最佳解决方案值得商榷,但我已经看到它在许多系统中使用(并且我自己使用了它),在这些系统中,这样的过程需要相当长的时间,比如几分钟或更长时间.如果您的导入只需要几秒钟,那么电子邮件解决方案可能就太过分了。
一个更简单的 AJAX 样式解决方案可能涉及浏览到一个页面(在启动后),该页面通过计时器轮询作业并在页面内显示进度。即使是自动重新加载也可能有效。为此,您需要的元数据是用户执行的作业的唯一标识符。
关于c# - 从 C# Web 应用程序调用 SSIS 并显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462759/