IIS:Прервать работу обработчика при закрытии клиентского соединения
Вопрос
У меня есть обработчик, который выполняет некоторую тяжелую работу с изображениями.Это выглядит как http://example.com/webservice.ashx?imageparam1=100&imageparam2=200
Каждый запрос к этому обработчику занимает около 2-3 секунд.
Мне нужен способ прервать генерацию изображения, если клиент закрывает соединение (т.е.закройте страницу или отправьте запрос на другое изображение).
Есть ли способ сделать это?
Решение
Ты должен наблюдать IsClientConnected
свойство HttpContext.Response
объект.Когда оно изменится на false, отмените генерацию изображения.
Я не могу предложить больше идей, так как это зависит от того, как вы создаете образ.Я могу только посоветовать создать отдельный поток генерации, который может быть прерван из основного потока, который периодически проверяет соединение.Кроме того, ресурсы генератора должны быть каким-то образом очищены, и это может быть серьезной проблемой, увеличивающей сложность решения.