WSDualHttpBinding
과 함께 작동하는 양방향 WCF 서비스가 있습니다. 내 문제는 고유 한 ID로 콜백 채널을 저장하는 방법을 찾는 것입니다. 이 서비스는 장기간 실행되도록 고안되었습니다. "Subscribe"메서드가 호출되어 목록이나 사전에 저장 될 때 OperationContext.Current.GetCallbackChannel()
반환 값을 간단히 잡을 수 있습니까? 연결이 생길 때까지 유효한지 보장됩니까?WCF 서비스에서 클라이언트 식별
6
A
답변
5
가장 쉬운 방법은 클라이언트가 서비스의 Subscribe 메소드에서 키 값을 제출하도록하는 것입니다. 콜백 채널을 사전에 저장할 수 있습니다. 이 사전은 아마도 대부분의 서비스 클래스가 PerCall 수명을 가지며 서비스 호출이 완료된 후에 처리되기 때문에 수명이 서비스 클래스의 수명보다 긴 정적 변수 또는 싱글 톤 클래스 일 필요가 있습니다. 스레딩 문제를 조심하십시오!
콜백 채널은 클라이언트 또는 서비스 측에서 언제든지 폴트 할 수 있습니다. 이 서비스는 오류가있는 채널의 가능성을 처리하고 오류가있는 채널을 사전에서 제거해야합니다. WSDuallHttpBinding은 "Stateless"바인딩이므로 서비스 측에서 호출을 시도 할 때까지 클라이언트의 모든 결함이 서비스 측에서 감지되지 않습니다. NetTcpBinding은 클라이언트가 오류 상태가되면 ChannelFaulted 이벤트를 발생시킵니다. 그 이유는 NetTcpBinding이 요구 사항에 맞을 경우 권장 할 것입니다.
public bool Subscribe(string id) {
ICallback callback = OperationContext.Current.GetCallbackChannel();
if (!_activeCallbackChannels.Contains(id)) {
_activeCallbackChannels.Add(id, callback);
return true;
}
else {
return false;
}
}
관련 문제
- 1. 양방향 WCF 서비스에서 클라이언트 연결 해제 처리
- 2. WCF 서비스에서 클라이언트 인증서 속성에 액세스하십시오.
- 3. 자체 호스팅 WCF 서비스에서 WCF 및 클라이언트 통신
- 4. Websphre 연결된 클라이언트 식별
- 5. HTTP 클라이언트 식별
- 6. wcf 서비스에서 ssl 사용
- 7. wcf 서비스에서 Maxrecievedmessagesize 설정
- 8. WCF 서비스에서 소멸자가 호출되는시기
- 9. WCF 서비스에서 KnowTypeAttribute 사용
- 10. WCF 서비스에서 상수 공유
- 11. WCF 서비스에서 인터페이스 반환
- 12. Windows 서비스에서 클라이언트 프록시 생성
- 13. WCF 서비스에서 스트리밍 된 출력
- 14. SSL 소켓을 사용하여 클라이언트 식별
- 15. flex의 클라이언트 웹 브라우저 식별
- 16. WCF 보안 - 클라이언트 인증
- 17. C# WCF 서비스에서 클라이언트 응용 프로그램 체크섬 얻기
- 18. WCF 서비스에서 클라이언트 별 상태를 유지 관리하는 방법은 무엇입니까?
- 19. WCF 서비스에서 스트림 응답
- 20. WCF 서비스에서 protobuf 사용
- 21. WCF 서비스에서 LoaderOptimizationAttribute 사용
- 22. HttpContext는 WCF 서비스에서 null입니까?
- 23. WCF 서비스에서 401을 반환
- 24. wcf 서비스에서 html을 반환합니다.
- 25. Windows 서비스에서 WCF 호스팅
- 26. WCF 서비스에서 변환 유형
- 27. WCF 서비스에서 인터페이스 정의 보내기
- 28. WCF : 클라이언트
- 29. 다른 WCF 서비스에서 WCF 서비스를 호스팅하는 방법은 무엇입니까?
- 30. WCF 클라이언트/서버 모델