Веб-сайт ASP.NET 2.0 получает исключение ThreadAbortException - PullRequest
2 голосов
/ 21 августа 2009

Мы запускаем веб-сервис как проект веб-сайта. Клиенты делают запросы, которые возвращаются через несколько секунд, но порождают поток, который должен работать часами. Поток делает веб-запросы и пишет в базу данных, и его удушают Thread.Sleep звонками.

После работы в течение примерно 20 минут с несколькими запущенными потоками все потоки получают ThreadAbortException одновременно. Thread.resetAbort не помогает. Исключение может возникнуть во время вызова SQL, во время веб-запроса или во время Thread.Sleep.

Я думал, что проблема может быть в атрибуте httpRuntime executionTimeout в web.config, но это не решило проблему.

Есть еще идеи, что может убить всех наших тем?

Ответы [ 2 ]

3 голосов
/ 21 августа 2009

Я бы предположил, что веб-приложению принадлежит поток, и приложение через некоторое время завершает работу.

Если бы я создавал что-то подобное, я бы написал веб-сервисы, которые бы принимали ваши запросы клиентов и помещали их в базу данных, а затем я бы написал службу Windows, которая опрашивает эту базу данных для запросов клиентов и порождает потоки, которые делать все, что вам нужно (делать веб-запросы и писать в базу данных). Похоже, вы пишете какой-то процессорный движок, и я не думаю, что приложение asp.net является хорошим местом для размещения подобных вещей.

2 голосов
/ 21 августа 2009

Пул приложений в IIS имеет время простоя. Это нужно было выключить.

(Администрирование> IIS. Щелкните правой кнопкой мыши пул приложений> Свойства. Вкладка Производительность.)

...