2010-08-12 2 views
6

Мне нужно загрузить и выполнить пакеты SSIS или DTS ASYNCHRONOUSLY с страницы ASP.NET C# по щелчку кнопки и сообщить об успешности или неудаче в конце выполнения, и если это не отображается информация об исключении, должна отображаться пользователю. он должен быть асинхронным, потому что работа может занять много времени. пользователь также должен иметь возможность отменить выполнение пакета во время его работы, если он этого захочет. существует также требование одновременного выполнения нескольких пакетов и отслеживания прогресса для каждого из них. возможно ли достичь OR слишком сложно, чтобы сделать это из ASP.NET? Пожалуйста, дайте мне знать, если у вас есть образец кода или ссылки, которые делают это. Заранее спасибо.выполнить SSIS или пакет DTS асинхронно из ASP.NET

+0

Если у вас несколько пулов, вам нужна общая таблица базы данных и отдельный класс для обработки этого параллельного выполнения со всем, что вы просите. Нелегкая задача, у нас есть одно подобное, но у нас есть много часов работы над ней и ее обычай. – Aristos

ответ

1

Я решил его, поставив запросы пользователя на выполнение пакета DTS/SSIS в таблице и прочитав их в службе Windows и выполнив их параллельно, создавая потоки с использованием класса ThreadPool. он работает нормально. Благодарю. недостатком этого подхода является опрос, чтобы сделать его управляемым событием, создание службы WCF и размещение его в службе Windows было бы лучше всего, что я попытаюсь сделать дальше. Спасибо за все ваши ответы. Кстати, я не могу использовать агент sql-сервера, он не разрешен согласно моей ИТ-политике компании.

1

Решение, которое вы можете рассмотреть, это использовать задания SQLServer. Вы можете настроить пакеты как задания с расписанием или без него. Вы можете начать, отменить, получить статус задания и получить информацию о сбое, запустив хранимые процедуры и запросы в базе данных системы msdb. Вы можете запускать процедуры и запросы с вашей страницы ASP.NET C#.

Выполнение пакетов SSIS/DTS на рабочих местах - общий подход. И это решение позволит вам использовать Management Studio для управления заданиями.

+0

спасибо за ответ, но как это работает? пакеты SSIS/DTS хранятся на веб-сервере. мне нужно создать работу на веб-сервере? если это так, мне нужно установить SQL-компоненты на него для создания задания (не уверены, разрешит ли политика сервера в моей компании)? как хранимая процедура будет знать о задании, которое находится где-то в другом месте? – RKP

+0

Вы уверены, что SSIS/DTS находятся на веб-сервере? Они должны быть частью базы данных ... –

+0

Да, пакеты SSIS/DTS не находятся в базе данных, они хранятся в файловой системе на веб-сервере. Если мне нужно создать задание и вызвать его с помощью хранимой процедуры, тогда мне нужно установить любые SQL-компоненты на веб-сервере? если нет, мне придется пойти на этот вариант в моем первоначальном вопросе. – RKP

0

Вы можете использовать Rhino ETL вместо SSIS. Это полноценная библиотека ETL, которая позволяет вам кодировать ваши задания ETL в C#.

+0

ETL ?? ahhh спасибо Google: ** E ** xtract ** T ** ransform ** L ** oad –

Смежные вопросы