2

我遇到了一个问题,即我在 POST 之后的第二个 GET 请求根本没有被执行,而是在 POST 之前返回结果。我根本看不到提琴手发出的请求。如果我重新启动应用程序,那么它会返回正确的结果。我没有设置任何缓存。路由配置如下:

container.RegisterAutoWired<ComplianceService>().ReusedWithin(ReuseScope.Request);

Routes.Add<CertificateDefinitionList>("/certificates","GET");
Routes.Add<CertificateDefinition>("/certificates/{CertificateDefinitionId}", "GET");
Routes.Add<CertificateDefinitionSave>("/certificates","POST");
4

2 回答 2

1

ServiceStack中没有隐式缓存。如果您想缓存响应,您需要明确请求它,如缓存 wiki 所示

public object Get(CachedOrders request)
{
    var cacheKey = "unique_key_for_this_request";
    return RequestContext.ToOptimizedResultUsingCache(base.Cache,cacheKey, () => 
        {
            //Delegate is executed if item doesn't exist in cache 
            //Any response DTO returned here will be cached automatically
        });
}
于 2013-03-22T18:58:15.913 回答
1

这可能是由您的代理在本地缓存结果引起的。默认情况下,在 http get 上启用缓存。在您的 http 标头中指定 http 缓存。

于 2013-03-24T14:48:38.027 回答