ThreadAbortException возникает при удалении изображений в фоновом потоке. ASP.NET 4 - PullRequest
0 голосов
/ 30 мая 2011

Я использую VS2010 и ASP.NET 4. В приложении запущен один длительный фоновый поток, который предназначен для «очистки» наименее недавно использованных файлов в папке. Он использует EventWaitHandle для устранения ненужного использования процессора, но продолжает работать в течение всего срока службы приложения.

После 24-40 удалений или около того, приложение перезапускается. Это происходит как на IIS Express, так и на сервере WebDev с подключенным отладчиком. В фоновом потоке нет исключений, но ThreadAbortException возникает во всех потоках, и приложение перезапускается. Переадресация вызовов нигде не производится.

Эти файлы находятся в папке 'imagecache' в корне, а не в любой папке, которая должна вызывать перезапуск приложения. Папки не созданы или удалены.

Перезапуск, по-видимому, происходит через определенный промежуток времени после наступления определенного порога удаления.

Есть идеи, почему это происходит и как я могу это остановить? Перезапуск каждые 10 секунд для меня неприемлем:)

Ответы [ 2 ]

0 голосов
/ 30 мая 2011

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

Можете ли вы добавить поток в службу?

0 голосов
/ 30 мая 2011

Возможно, это переработка пула приложений IIS? Взгляните на настройки утилизации, чтобы узнать, может ли это быть что-то там.

Другой вариант зависит от того, как вы запускаете фоновый поток. Если это со страницы aspx, то это может быть истечение времени ожидания потока запроса. Если это из global.asax, то это не вариант.

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