c# - 从 C# Web 应用程序调用 SSIS 并显示进度

标签 c# sql-server-2008 ssis

我有一个 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/

相关文章:

sql - 如何创建一个 SSIS 包,该包循环使用名称中包含特定关键字的 excel 文件?

sql-server - 使用SSIS包导入数据后如何移动文本文件?

c# - 如何在 GridView 中打开 pdf

sql - 列名作为 INSERT 语句中的参数

SQL服务器: Left join and subquery

sql - SSIS 问题无法解密 protected XML 节点

variables - 如何找到SSIS包中所有使用变量的地方?

c# - 从 ASP.net webform 中的 c# 类调用方法

c# - .NET 如何知道在哪里寻找扩展方法?

C#插件架构问题