2010-06-10 7 views
0

클라이언트의 호출간에 상태를 유지하고자하는 WCF 서비스를 만들었습니다. 이것은 극단적으로 클라이언트 프록시의 삶 (또는 시간 제한을 통해 각 클라이언트에 대해 살아 별도의 서비스를 유지하도록되어 있기 때문에WCF 서비스에서 클라이언트 별 상태를 유지 관리하는 방법은 무엇입니까?

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 

: 나는이 작업을 수행하는 가장 쉬운 방법을 생각하는 서비스에이 속성을 추가 할 수 있었다 케이스). 또한 사용자 입력 목록을 추적하는 테스트 함수를 추가하고 서비스 수명 동안 모든 입력과 연결된 문자열을 뱉어 냈습니다.

Visual Studio에서 생성 한 테스트 클라이언트에서이 코드를 실행하면 과거 데이터를 보유하기 위해 사용했던 목록이 각 호출마다 재설정된다는 것을 알게되었습니다. 세션 당 상태를 유지하기 위해해야 ​​할 일이 있습니까?

답변

2

알아 냈습니다. 나는 세션 별 인스 턴싱을 지원하지 않는 BasicHttpBinding을 사용하고 있었다. 나는 그것을 wsHttpBinding으로 바꾸었다. 그리고 presto, 모든 것이 작동한다.

+2

정상적으로 작동 할 수도 있지만 일반적으로 "해킹"으로 간주됩니다. 가능할 때마다 서버 백엔드에 상태를 저장하거나 상태를 저장하려고 시도합니다. 세션에 의존하지 마십시오. 잘못 될 수있는 많은 것들이 시스템에 혼란을 줄 것입니다 ... –

관련 문제