Я получаю прерывистое «System.Web.HttpException: истекло время ожидания запроса». ошибка, когда мой код попадает в строку response.write ():
sMessage = "Searching...0% complete."<br>
sSetVal = "<script>document.getElementById('MessageDiv').innerHTML='" & sMessage & "';</script>"<br>
Response.write(sSetVal)
Обратите внимание, что Response.BufferOutput = false устанавливается при первом запуске страницы (задолго до того, как будет выполнен вышеуказанный код).
Код используется для обновления сообщения о ходе выполнения, в то время как другие потоки выполняют долго выполняющиеся процессы. Один поток работает непрерывно и проверяет состояние других потоков. По завершении других потоков этот поток выводит обновленные сообщения о состоянии конечному пользователю. Я понимаю, что это может (должно) быть перекодировано с использованием ajax, но это устаревшее приложение, и на данный момент это не вариант.
Этот код запускается более 10000 раз в день, и ошибка возникает только около 5 раз - поэтому я подозреваю, что объект ответа блокируется другими потоками, когда веб-сайт загружается. Однако я не знаю, какие счетчики производительности следует проверять в мониторе производительности. Или эта проблема вызвана чем-то другим? Я использую IIS 6, asp.net v2 и vb.net