Все, что действительно необходимо, - это удалить ошибочный заголовок Content-Length, но это не разрешено в IIS6. Не уверен насчет IIS7 в режиме интегрированного конвейера. Для любого ответа, который использует ваш фильтр, примените это обновление к заголовкам. Идея состоит в том, чтобы получить тип содержимого (чтобы вы не нарушали нетекстовые ответы) и какие-либо файлы cookie (чтобы не нарушать аутентификацию), очистить все заголовки (чтобы очистить Content-Length), а затем установить тип контента и куки снова. Мы применяем наш фильтр в событии HttpApplication.ReleaseRequestState и затем выполняем следующую обработку. YMMV.
HttpApplication app = (HttpApplication)sender;
string ct = app.Response.ContentType;
HttpCookie[] cookies = new HttpCookie[app.Response.Cookies.Count];
app.Response.Cookies.CopyTo(cookies, 0);
app.Response.ClearHeaders();
app.Response.ContentType = ct;
foreach (HttpCookie cookie in cookies) { app.Response.Cookies.Add(cookie); }