Обнаружить сеанс повесить и убить его - PullRequest
0 голосов
/ 16 мая 2010

У меня есть страница asp.net, которая запускает определенный алгоритм и возвращает его вывод. Мне было интересно, что произойдет и как справиться со случаем, когда алгоритм из-за ошибки переходит в бесконечный цикл. Он будет загружать процессор, а другие сеансы будут обслуживаться очень медленно.

Мне бы хотелось иметь возможность сообщить IIS, если обработка Algo.aspx занимает более 5 секунд, уничтожьте его или что-то в этом роде.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 16 мая 2010

Установите свойство ScriptTimeout . Он прервет страницу, если время будет превышено. Это работает только тогда, когда для свойства отладки установлено значение true.

0 голосов
/ 16 мая 2010

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

Вы можете взглянуть на метод WaitHandle.WaitOne , который позволяет вам указать тайм-аут для ожидания того, чтобы конкретное событие было сигнализировано, например, из фонового потока.

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