Почему PreSendRequestHeaders и PreSendRequestContent не работают последовательно? - PullRequest
3 голосов
/ 31 марта 2009

При работе с модулями HTTP кто-нибудь заметил, что последние два события в конвейере - PreSendRequestHeaders и PreSendRequestContent - не всегда запускаются?

Я подтвердил, что код, связанный с EndRequest, будет работать, но не будет работать, когда он связан с PreSendRequestHeaders или PreSendRequestContent.

Есть ли причина, почему? Я подумал, что, возможно, это проблема с кэшированием (с 304 Not Modified вы фактически не отправляете контент ...), но я очистил кеш и определил, что сервер возвращает 200 OK, что будет означать, что он отправил контент .

Это проблема, потому что StatusCode ответа по умолчанию равен 200, и я понимаю, что он не обновляется до чего-то вроде 404 или 206 до тех пор, пока эти два последних метода. Если я проверяю StatusCode во время EndRequest, он всегда будет читать 200.

Ответы [ 3 ]

1 голос
/ 05 ноября 2010

это не связано с интегрированным конвейером IIS 7?

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

0 голосов
/ 14 августа 2010

Может быть, это связано с HttpResponse.BufferOutput. Если буферизация отключена, кажется, что все заголовки и часть контента уже были бы отправлены к моменту запуска этих событий.

0 голосов
/ 25 апреля 2009

Я вставляю заголовок файла cookie в событие PreSendRequestHeaders , но до сих пор не столкнулся с проблемой его отсутствия ...

...