HI to all.
In my ASP.NET web-application I use the following code in order to compress some response:
public bool IsGZipSupported()
{
string AcceptEncoding = HttpContext.Current.Request.Headers["Accept-Encoding"];
if (!string.IsNullOrEmpty(AcceptEncoding) &&
(AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")))
return true;
return false;
}
public void GZipEncodePage()
{
if (IsGZipSupported())
{
HttpResponse Response = HttpContext.Current.Response;
string AcceptEncoding = HttpContext.Current.Request.Headers["Accept-Encoding"];
if (AcceptEncoding.Contains("gzip"))
{
Response.Filter = new System.IO.Compression.GZipStream(Response.Filter,
System.IO.Compression.CompressionMode.Compress);
Response.AppendHeader("Content-Encoding", "gzip");
}
else
{
Response.Filter = new System.IO.Compression.DeflateStream(Response.Filter,
System.IO.Compression.CompressionMode.Compress);
Response.AppendHeader("Content-Encoding", "deflate");
}
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
GZipEncodePage();
}
It works perfect under IIS 5.1 and doesn't work under IIS 6. I view header of this HTTP response and don't find Contet-Encoding key. What the reason?