Это проблема, с которой я сталкивался раньше, и проблема в том, что длина содержимого неверна. Почему не правильно? потому что его, вероятно, рассчитать до сжатия.
Если вы устанавливаете Content-Lenght вручную, просто удалите его и позвольте модулю установить его, если он может.
Замечу, что вы используете Blowery компрессию . Вероятно, это ошибка / проблема внутри Blowery. Если вы не можете найти его и исправить, почему бы не использовать сжатие Ms?
@ ptutt если вы используете общий iis, то, возможно, есть сжатие с готовыми настройками, поэтому одно сжатие поверх другого, и вам нужно только удалить свое. Если это проблема, то конечно, длина содержимого ложна, потому что после первого сжатия, второе - сломать его.
Проверьте это , используя этот сайт http://www.pipeboost.com/report.asp, если все ваши страницы по умолчанию готовы к сжатию с помощью iis.
Если не сжато по умолчанию, вы можете сделать это очень легко. На Global.asax
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string cTheFile = HttpContext.Current.Request.Path;
string sExtentionOfThisFile = System.IO.Path.GetExtension(cTheFile);
if (sExtentionOfThisFile.Equals(".aspx", StringComparison.InvariantCultureIgnoreCase))
{
string acceptEncoding = MyCurrentContent.Request.Headers["Accept-Encoding"].ToLower();;
if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
{
// defalte
HttpContext.Current.Response.Filter = new DeflateStream(prevUncompressedStream,
CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-Encoding", "deflate");
} else if (acceptEncoding.Contains("gzip"))
{
// gzip
HttpContext.Current.Response.Filter = new GZipStream(prevUncompressedStream,
CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-Encoding", "gzip");
}
}
}
Обратите внимание, я просто пишу этот код и не проверял. Мой код немного сложнее, поэтому я просто создаю его простую версию.
Найти больше примеров:
http://www.google.com/search?q=Response.Filter+GZipStream
Справка:
Сайт ASP.NET иногда зависает и / или показывает нечетный текст вверху страницы во время загрузки на серверах с балансировкой нагрузки