在IIS8中使用servicestack时如何启用HTTP压缩

时间:2015-05-12 16:17:24

标签: compression servicestack

我有一个基于最新版本的servicestack 4构建的项目。似乎响应总是不包括内容编码:gzip无论我尝试过什么。我已经在IIS上启用了动态压缩功能。不知道还能做什么。

我是否需要在编码中添加一些内容?我认为如果支持它会自动使用压缩,不是吗?

真的需要有人指明方向

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您只想添加标题,可以随时添加带有响应过滤器的GZip ContentEncoding响应标头,例如:

GlobalRequestFilters.Add((req, res, dto) => 
    res.AddHeader(HttpHeaders.ContentEncoding, CompressionTypes.GZip));

但ServiceStack只有compresses cached responses itself,即使用ToOptimizedResult() API或在CompressedResult中返回回复时,例如:

public object Get(CachedOrders request)
{
    var cacheKey = "unique_key_for_this_request";
    return base.Request.ToOptimizedResultUsingCache(base.Cache,cacheKey,()=> 
    {
        //Delegate is executed if item doesn't exist in cache 
        //Any response DTO returned here will be cached automatically
    });
}