相关疑难解决方法(0)

启用IIS7 gzip

如何启用IIS7来gzip静态文件,如js和css,如何在发送到客户端之前测试IIS7是否真正gziping它们?

compression iis iis-7 gzip

226
推荐指数
4
解决办法
16万
查看次数

压缩HTTP GET响应

我目前正在努力将我的一些MVC3控制器迁移到MVC4 Api控制器.我已经通过inherting ActionFilterAttribute和overriding方法实现了MVC3控制器获取方法响应的压缩机制OnActionExecutiong.经过一番研究,我发现,我需要使用ActionFilterMethodSystem.Web.HttpFilters.如果有人可以分享一些示例代码,让我开始使用GZip压缩HTTP响应,那将是很棒的

c# http-compression asp.net-web-api

17
推荐指数
2
解决办法
2万
查看次数

GZipStream正在切断XML的最后一部分

我创建了一个名为AddGZip的扩展方法,如下所示:

public static void AddGZip(this HttpResponse response)
{
    response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
    response.AppendHeader("Content-Encoding", "gzip");
}
Run Code Online (Sandbox Code Playgroud)

这是代码的一个非常简化的版本:

var response = HttpContext.Current.Response;
var request = HttpContext.Current.Request;
var result = File.ReadAllText(path);
if (request.SupportsGZip)
{
  response.AddGZip();
}
response.Write(result);
response.Flush();
Run Code Online (Sandbox Code Playgroud)

当您在支持GZip的Web浏览器中查看响应时,会出现如下错误:

"XML解析错误:未关闭的令牌位置:http://webserver1/1234.xml 第78行,第1列:"

当我查看源代码时,它基本上错过了>XML文件末尾的最后一个.所以1或2个字节.

如果我注释掉AddGZip线,它可以正常工作.但是我真的想支持GZip,因为XML可能非常大.

有人对我有建议吗?我已经尝试检查了很多博客,但似乎没有针对此类错误的解决方案.

戴夫

c# asp.net gzip httpresponse gzipstream

4
推荐指数
1
解决办法
2701
查看次数