2013-10-18 2 views
1

콜백을 구현하는 WCF 서비스를 구현했습니다. 클라이언트 웹 앱이 HTTP API 및 원격 클라이언트 응용 프로그램을 통해 WCF에 연결되어 있으며, Windows OS에서 실행되고 net.TCP를 사용하여 WCF에 연결되는 콜백 지원을 포함합니다.WCF net.TCP 트래픽 설명

이제 클라이언트가 원격 및 원격으로 액션을 보내 콜백 리턴 값으로 상태를 반환합니다.

나는 매 2 분마다 활동이 없다면 살아있는 net.TCP를 유지하기 위해 ImAlive (bool WCF.ImALIVE (machineID) 호출)를 전송하는 스레드가 있습니다.

내 질문 : 클라이언트에서 콜백 동작을 얻고 원격 실행 중에 ImAlive 스레드 웨이크 업을 호출하고 WCF.ImALIVE를 호출하면 블록이나 교착 상태 또는 시간 초과 문제가 있습니까?

+0

특정 발신자에게 전용 스레드를 제공하는 것은 좋은 생각이 아닙니다. 어떤 스레드 (스레드 안전 데이터 액세스)가로드하거나 검사 할 수있는 방식으로 서버 측 클라이언트 세션 상태 데이터를 저장할 수 있습니까? 이렇게하면 클라이언트가 유휴 상태 일 때 다른 클라이언트 요청을 처리 할 수있는 스레드를 묶어 두지 않습니다. – James

답변

0

ServiceBehavior ConcurrencyMode에 따라 다릅니다. 자세한 내용은 여기 http://www.codeproject.com/Articles/89858/WCF-Concurrency-Single-Multiple-and-Reentrant-and을 참조하십시오.

여기에는 현재 시도하고있는 내용이 중복되어 있습니다. Use WCF Service with basic authentication user

이 관련 질문도 볼 수 있지만 서버 측 인스턴스와 관련이 있습니다. Сan I use PerCall instancing and Reentrant concurrency in the same service?

관련 문제