2011-12-14 3 views
1

엔터프라이즈 API에 캐싱을 적용하는 중입니다. 역방향 프록시 캐싱을 지원하는로드 밸런서와의 호환성을 위해 유형 "공용, 최대 연령 = 600"의 캐시 제어를 구현하려고합니다.WCF에서 AspNetCacheProfile을 사용하여 "Cache-Control : public, max-age = 600"을 얻는 방법

그러나 역방향 프록시 캐싱에 적합하지 않은 "개인, 최대 연령 = 600"만 출력하도록 WCF를 얻을 수 있습니다.

프로필에 다음 위치가 설정되어 있습니다. 서버 (ASP 응용 프로그램 수준 캐싱이 필요함)하지만 다른 모든 위치도 시도했지만 아무도 공개하지 않습니다. 이 같은 공상 아무것도 표준 WCF를 사용하지

<caching> 
    <outputCache enableOutputCache="true"/> 
    <outputCacheSettings> 
    <outputCacheProfiles> 
     <add name="CacheDefault" duration="600" varyByParam="none" location="Any" /> 
    </outputCacheProfiles> 
    </outputCacheSettings> 
</caching> 

임 : 나는 심지어 내 현재의 생산 코드에있을 수있는 혼란 변수를 제거하기 위해 새로운 WCF 서비스 프로젝트를 시작했습니다

[AspNetCacheProfile("CacheDefault")] 
    [OperationContract] 
    [WebGet(UriTemplate = "/GetData/{value}")] 
    string GetData(string value); 

을, 그러나 여전히 개인적으로 출력됩니다.

P. WebOperationContext.current.outgoingresponse.headers를 수동으로 덮어 쓰고 싶지 않다는 것을 분명히해야합니다. 나는 AspNetCacheProfile을 구성하는 것으로 빨리 승리했다.

도움이 될 것입니다.

감사합니다.

올리버

답변