2014-07-20 4 views
0

(다른 클라이언트 호출) 사이에 정보를 공유하려는 wcf 웹 서비스가 있습니다.호출간에 변수를 공유하는 Wcf

예 :은 클라이언트 호출간에 사전을 공유합니다. 사전은 전화 ​​(항목 추가/제거 등)를 통해 변경 될 수 있지만 삭제되거나 각 통화마다 갱신되어야합니다 (정적 데이터베이스와 같아야 함).

이 문제를 해결할 방법이 있습니까?

은 이미 몇 가지 제안을 시도했지만 실제로 작동하는 것 같지는 않습니다.

답변

1

기본적으로 서비스 클래스 외부에서 정의 된 singleton이 필요합니다. 여러 통화가 동시에 정보에 액세스/수정되므로 매우 잠길 가능성이 있으므로 ReaderWriteLock으로 데이터를 잠글 필요가 있습니다 또는 ReaderWriterLockSlim.

.net 4.0을 사용 중이라고 가정하면 더 나은 방법으로 MemoryCache을 사용하는 것이 좋습니다. 여기에는 기본 제공되는 스레드 안전이 포함되어 있습니다. 네가 pre .net 4.0 인 경우 System.Web 네임 스페이스 link에 캐시 객체가있다. MemoryCache 구현을 위해 윈도우 애플리케이션을 작성할 때 system.web에 참조를 추가해야한다면 약간의 고통이 있었다. NET 4.0에서 환영받은 추가했다.

+0

실제로 Singletone 무엇을 찾고, memorycache 더 많은 옵션을 소리. 전화를 통해 공유 객체로 사전을 돌리고 싶습니다. 사용할 수있는 옵션이 더 있습니까? – fatalica

관련 문제