GZIP压缩的代码,是网上常见的:
public class CompressFilterAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { string acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"]; if (String.IsNullOrEmpty(acceptEncoding)) return; var response = filterContext.HttpContext.Response; acceptEncoding = acceptEncoding.ToUpperInvariant(); if (acceptEncoding.Contains("GZIP")) { response.AppendHeader("Content-Encoding","gzip"); response.Filter = new GZipStream(response.Filter,CompressionMode.Compress); } else if (acceptEncoding.Contains("DEFLATE")) { response.AppendHeader("Content-Encoding","deflate"); response.Filter = new DeflateStream(response.Filter,CompressionMode.Compress); } } }
页面报黄页的时候就会乱码,不报错则正常显示,且为GZIP压缩
请问这是为什么呢? 大家就没碰到过这个问题吗?
你可以使用 Fiddler 检查下页面的 HEADER,看看正确和错误的有什么不同。
IIS配置的话,需要设置对动态类型压缩。
上面的是乱码时的header,下面是正常的:
你遇到的问题我全部遇到了,好巧
我也是耶,我也遇到了,好巧,好有缘份啊~~~
这个有没有解决呢?
我去,搞了半天还没有解决呀。 我也碰到了。谁解决了。共享一下呀。
我上次有这种情况,直接把IIS 里面的GZIP 关闭掉就不会了,两个好像有冲突