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

How do I enable HTTP Compression when using servicestack with IIS8

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

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

很需要有人指点方向

谢谢!!

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

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
    });
}