2009-03-31 3 views
3

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

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

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

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

ответ

0

Я инъекционный печенье заголовок на PreSendRequestHeaders событий и еще запустить в вопрос не стрелять ...

0

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

1

не относится ли это к интегрированному трубопроводу IIS 7?

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

+0

Я думаю, что вы правы, но у меня такая же проблема, и я не стреляю даже с IIS, работающим в интегрированном режиме конвейера. – daustin