Вызов SSIS из веб-приложения c # и отображение прогресса - PullRequest
4 голосов
/ 24 июня 2011

У меня есть пакет служб SSIS, который загружает данные из файла Excel в базу данных.

Пользователь переходит на страницу интрасети (обычное веб-приложение c # .net 4.0), выбирает файл, который он хочет загрузить, и затем нажимает кнопку. Кнопка копирует файл на сервер, а затем запускает задание SQL, которое вызывает пакет. Это прекрасно работает, но пользователь не знает, когда работа закончится.

Какой лучший способ показать пользователю, что пакет завершен (или не выполнен)?

Я видел ссылки вроде - http://www.programminghelp.com/database/sqlserver/sql-server-integration-services-calling-ssis-package-in-c/, но это для консольного проекта C #. Какой лучший способ сделать это с помощью веб-приложения?

1 Ответ

2 голосов
/ 24 июня 2011

Есть несколько способов сделать это, но если вы ищете простой способ, вы можете использовать SmtpClient class в пространстве имен System.Net.Mail, чтобы отправить электронное письмо пользователю когда работа закончится. (На этой странице есть хороший простой фрагмент кода, который вы можете легко использовать повторно.) Конечно, вам нужно настроить учетную запись отправителя (например, no-reply@myAutomatedJobThing.com) и знать адрес электронной почты пользователя.

Вопрос о том, является ли это лучшим решением в вашем сценарии, является спорным, но я видел, что он использовался (и использовал его сам) для ряда систем, где такой процесс занимает заметное количество времени, скажем, пару минут или дольше , Если ваш импорт занимает всего несколько секунд, тогда решение для электронной почты может оказаться излишним.

Более простое решение в стиле AJAX может включать в себя просмотр страницы (после инициации), которая опрашивает задание через таймер и отображает ход выполнения на странице. Даже автоматическая перезагрузка может работать. Часть метаданных, которая вам понадобится для этого, является уникальным идентификатором для задания, которое выполнил пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...