여러 클라이언트에서 호출하는 WCF 서비스가 있습니다. 전 세계적으로 가치를 저장하고 관리해야합니다. 나는이 비슷한이 내 서비스에WCF 정적 변수 호출마다 재설정 재설정
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)]
: 내 서비스에 나는 다음과 같은 속성이
private static int counter;
public void PrintCounter()
{
counter++;
StreamWriter sw = new StreamWriter(@"C:\outFile.txt", true);
sw.WriteLine("Counter: " + counter);
sw.Close();
}
WCF의 내 제한된 지식으로가, 내가 싱글 톤 서비스를하고 있음을 추정 할 내 개인 변수가 정적이라는 사실, 서비스에 대한 모든 호출이 동일한 객체를 사용한다는 것. 내 로그 출력을 볼 때
는그러나, 나는 다음을 참조 : 나는 것보고 기대했던
Counter: 1
Counter: 1
:
Counter: 1
Counter: 2
내가이 일을 위해 뭔가 빠진 오전 나는 그것을 필요로하는 방법? 어떤 종류의 캐시에 객체를 저장해야합니까? 어떤 도움이라도 대단히 감사합니다.
필요한 경우 더 많은 코드를 게시 할 수 있습니다.
같은 것들을보고있다 정적 변수 값을 유지해야하는 서비스 인 Net TCP WCF 서비스로 옮겨야했습니다 .RESTful 웹 서비스를 '라우터'로 사용하여 TCP 서비스를 호출합니다. – Brandon