我遇到的问题是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");
答案 0 :(得分:1)
ServiceStack中没有隐式缓存。如果您想缓存响应,则需要将其明确请求为seen on the Caching 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
});
}
答案 1 :(得分:1)
这可能是由您的代理在本地缓存结果引起的。默认情况下,在http get上启用缓存。在http标头中指定http缓存。