Итак, я работаю над переносом модуля IIS6 ISAPI на IIS7.Одна из проблем, с которыми я сталкиваюсь, заключается в том, что мне нужно иметь возможность анализировать и обрабатывать ответы, а затем изменять / удалять / добавлять некоторые заголовки HTTP на основе содержимого.Это нормально работает для большинства контента, но, похоже, он ломается, когда в теле ответа используется кусочная кодировка.
Похоже, что CHttpModule :: OnSendResponse вызывается один раз для каждого чанка.Я смог определить, когда отправляется чанк-ответ, и буферизовать данные до тех пор, пока не будут переданы все чанки, и установить счетчик объектов равным 0, чтобы предотвратить отправку этих данных, но после первогоOnSendResponse называется, заголовки уже отправлены клиенту, поэтому я не могу изменить их позже после того, как уже обработал фрагментированные данные.
Я понимаю, что выполнение этого приведет к устранению преимуществкодирование по частям, но в этом случае это необходимо.
Единственный пример кода, который я могу найти для собственных модулей IIS, очень упрощен и не демонстрирует выполнение какой-либо фильтрации данных ответа.Любые советы или ссылки на это были бы хорошими.
Редактировать: Хорошо, я нашел IHttpResponse :: SuppressHeaders, который будет препятствовать отправке заголовков после первого OnSendResponse.Однако теперь он не будет отправлять заголовки вообще.Итак, что я сделал, когда это фрагментарный ответ, я установил его для подавления заголовков, а затем позже, после обработки ответа, я проверяю, были ли заголовки подавлены, и, если они были, я читал все заголовки из необработанной структуры ответа(HTTP_RESPONSE), и вставьте их в начало ответного объекта.Кажется, до сих пор это работает хорошо.
Все еще открыт для других идей, если у кого-то есть лучший вариант.