2

POST後の2番目の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

これはおそらく、結果をローカルにキャッシュするプロキシが原因です。デフォルトでは、キャッシュは http get で有効になっています。http ヘッダーで http キャッシングを指定します。

于 2013-03-24T14:48:38.027 に答える
1

ServiceStack には暗黙的なキャッシュはありません。レスポンスをキャッシュしたい場合は、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
        });
}
于 2013-03-22T18:58:15.913 に答える