2009-06-08 2 views
0

웹 서비스의 정적 캐시 객체를 초기화하는 올바른 방법입니까?웹 서비스의 정적 캐시

public class someclass{ 
private static Cache cache; 
static someclass() 
    { 
     cache = HttpContext.Current.Cache; 
    } 
} 

추가 정보 :

Seems like I receive more then one cache object from webservice. It creates a new request that only lasts for the duration of that call. If I move to a different machine, it creates a new request (and I think a webservice) object that returns new cache. (because I can see two different caches being returned in the sniffer) By forcing it to be static I was hoping to have only one. However no avail. doesn't work. 

답변

0

이 나에게 좋아 보인다 - 당신이 Current.Context 포장과 같은 캐시 값 속성을 노출하려는 특히 :

public static class CacheManager 
{ 
    public static Boolean Foo 
    { 
     get { return (Boolean)HttpContext.Current.Cache["Foo"] } 
     set { HttpContext.Current.Cache["Foo"] = value; } 
    } 

    // etc... 
} 

당신 돈 당신이 입력 할 때만 저장하지 않는 한 현재 캐시에 대한 개인 참조를 생성해야합니다. 또한 나는 클래스 static도 만들었습니다.

0

HTTPContext.Current.Cache을 사용하여 직접 액세스하지 않는 이유는 무엇입니까?

+0

webservice에서 캐시 객체를 한 개 이상받는 것처럼 보입니다. 해당 호출 기간 동안 만 지속되는 새 요청을 만듭니다. 다른 컴퓨터로 이동하면 새 캐시를 반환하는 새로운 요청 (웹 서비스라고 생각합니다)을 만듭니다. 그것을 정적으로 강요함으로써 나는 오직 하나만 가지기를 바랬습니다. 그러나 아무 소용이 없습니다. – ra170

+0

그러면 컴퓨터에 문제가 있습니다. 캐시에있는 항목의 시간 초과 값을 지정하고 있습니까? 귀하의 컴퓨터에 소량의 RAM 만 있습니까? – RichardOD