servicestack,Caching,servicestack" /> servicestack,Caching,servicestack" />

Caching 使用较新的CacheControl属性缓存HttpResult/memorystream

Caching 使用较新的CacheControl属性缓存HttpResult/memorystream,caching,servicestack,Caching,servicestack,我刚刚发现了新的CacheControl属性,它在标准POCO中运行良好——我想知道是否需要一些不同的东西来缓存一个以PDF格式返回HttpResult的服务。(该服务正在工作,但在调用该服务后,我在缓存中未看到任何记录) ServiceStack的缓存无法在服务实现中定义的HttpResult中缓存元数据(返回缓存响应时)。相反,您应该使用[AddHeader]请求筛选器属性指定服务返回的自定义内容类型,并返回裸流,例如: [Authenticate] [AddHeader(ContentTy

我刚刚发现了新的CacheControl属性,它在标准POCO中运行良好——我想知道是否需要一些不同的东西来缓存一个以PDF格式返回HttpResult的服务。(该服务正在工作,但在调用该服务后,我在缓存中未看到任何记录)


ServiceStack的缓存无法在服务实现中定义的
HttpResult
中缓存元数据(返回缓存响应时)。相反,您应该使用
[AddHeader]
请求筛选器属性指定服务返回的自定义内容类型,并返回裸流,例如:

[Authenticate]
[AddHeader(ContentType = "application/pdf")]
[CacheResponse(Duration = CacheExpirySeconds.TwentyFourHours)]  
public class AdvReportPDFService : Service
{
    public object Get(AdvRptPitchPercentages request)
    {
        var ms = SomeFunctionThatReturnsAMemoryStream();
        return ms;
    }
}

Addheader属性第一次有效,但第二次无效-返回缓存响应时,ContentType返回为text/plain,my PDF无法在浏览器中正确呈现
[Authenticate]
[AddHeader(ContentType = "application/pdf")]
[CacheResponse(Duration = CacheExpirySeconds.TwentyFourHours)]  
public class AdvReportPDFService : Service
{
    public object Get(AdvRptPitchPercentages request)
    {
        var ms = SomeFunctionThatReturnsAMemoryStream();
        return ms;
    }
}