Как создать работу в IIS, способную запустить расширенный процесс - PullRequest
2 голосов
/ 06 апреля 2010

У меня есть приложение веб-службы, у меня есть 1 вызов веб-службы, который может занять от 1 часа до 14 часов, в зависимости от данных, которые необходимо обработать, и времени месяца.

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

Я буду работать в первую очередь с IIS6. И хотел бы использовать код C #.

Сейчас я использую вызов веб-службы, но мне не нравится идея, что веб-службы будут работать так долго, и из-за природы веб-службы я не могу разделить какую-либо функциональность Больше.

Задания IIS были бы великолепны, если бы они были доступны. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 06 апреля 2010

На вашем месте я бы создал приложение для командной строки, которое запускается веб-службой. Запустить приложение командной строки довольно просто, в основном

 Process p = new Process();

 p.StartInfo.UseShellExecute = false;
 p.StartInfo.FileName = "appname.exe";
 p.Start();

Количество рабочих процессов на машину ограничено, они не предназначены для длительных работ.

0 голосов
/ 06 апреля 2010

Одна возможность, с небольшими затратами на установку, состоит в том, чтобы ваша обработка выполнялась как служба Windows, которая прослушивает очередь сообщений (MSMQ или аналогичная), и ваша веб-служба просто отправляла запрос в очередь сообщений, чтобыобрабатывается службой обработки.

Мониторинг заданий более сложен;у вашего веб-сервиса должен быть способ опроса вашего сервиса обработки, чтобы выяснить его состояние.Это проблема IPC (межпроцессное взаимодействие), которая имеет много разных решений с различными компромиссами, которые зависят от вашей среды и обстоятельств.

При этом для простых случаев решения Мэтта, вероятно, достаточно.

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