2010-02-18 3 views
0

안녕하세요 다음 개체를 캐시하려면 다음 코드를 사용하고 있습니다.WCF 런타임 캐싱

HttpRuntime.Cache.Insert ("Doc001", _document); HttpRuntime.Cache.Remove ("Doc001");

캐시가 저장되었는지 알고 싶습니다. (클라이언트 PC 또는 IIS 서버에서)

캐시 개체를 저장하는 방법이며 캐시를 추가하거나 제거하여 다른 클라이언트에 영향을 미칩니다. 예를 들어 2 개의 클라이언트가 연결되어 있습니다. 둘 다 캐시 "HttpRuntime.Cache.Insert ("Doc001 ", _document);"을 저장하고 있으며 한 클라이언트가 캐시를 제거합니다. 클라이언트 레벨에서만 캐시가 제거됩니까?

답변

1

이 코드를 작성하는 위치에 따라 다릅니다. WCF 서비스에서이 작업을 수행하는 경우 개체는이 서비스를 호스팅하는 프로세스의 메모리에 저장됩니다 (IIS의 경우 w3p.exe 인 경우). 캐시는 서비스의 모든 클라이언트들간에 공유 될 것입니다. 이는 클라이언트가 캐시에서 항목을 제거하면 다른 클라이언트에서도 제거 된 것을 볼 수 있음을 의미합니다.

이 구성을 사용할 때 중요한 점은 특정 상황 (예 : 메모리 부족)에서 런타임이 캐시의 개체 만료를 결정할 수 있으므로 항상 캐시에있는 개체의 존재 여부를 확인하기 전에 그것을 사용하십시오 : 당신이 그것을 거기에두면 그것을 나중에 발견 할 것이라고 가정하지 마십시오.

more about caching on MSDN을 읽을 수 있습니다.

+0

클라이언트 수준에서 캐시하고 싶습니다. 무엇을 사용할 것입니까? – francois

0

캐싱은 웹 사이트 (MVC)에서 발생합니다.