서비스 호스트에 연결된 모든 클라이언트에 대한 일종의 위치 식별자를 어떻게 열거 할 수 있습니까? 장기간 계산을 위해 이중 연결을 사용하고 있습니다. 서비스 호스트는 싱글 톤입니다.wcf 서비스에 연결된 클라이언트 목록 얻기
나는 (.net 3.5에서) 호출 클라이언트의 IP를 알아낼 수 있지만 연결된 모든 클라이언트의 IP를 얻는 방법을 잘 모르겠습니다.
서비스 호스트에 연결된 모든 클라이언트에 대한 일종의 위치 식별자를 어떻게 열거 할 수 있습니까? 장기간 계산을 위해 이중 연결을 사용하고 있습니다. 서비스 호스트는 싱글 톤입니다.wcf 서비스에 연결된 클라이언트 목록 얻기
나는 (.net 3.5에서) 호출 클라이언트의 IP를 알아낼 수 있지만 연결된 모든 클라이언트의 IP를 얻는 방법을 잘 모르겠습니다.
나는 내장 된 것이 아무것도 없다고 생각하지만, 호출이 서비스 impl에 전달되고 클라이언트 IP가 고정되기 전에 RemoteClientEnpointMessageProperty를 검사하는 IServiceBehavior + IDispatchMessageInspector 추적을 작성하는 것이 매우 쉽습니다. 공유 목록에 넣고 통화/세션이 끝나면 제거하십시오.
기본적으로 WCF는 "통화 별"서비스 사용을 권장합니다. 클라이언트 호출, 요청 처리 및 클라이언트가 즉시 다시 연결이 끊어집니다.
WCF는 장기 실행 연결에 적합하지 않으므로 실제로 연결되어있는 사용자를 열거 할 수 없습니다. 1 초).
WCF는 로그인하여 오랜 시간 동안 로그인 상태를 유지하는 Windows 도메인 서버와 다릅니다.
죄송합니다. 게시물에 명확하지 않지만 기본 서비스 동작을 사용하고 있지 않습니다. [ServiceBehavior (InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] InstanceContexMode.Single에는 기본 "통화 별"모드보다 수명이 긴 인스턴스가 하나 있습니다. 구현 된 서비스는 현재 준비가되었을 때 결과를 보내기 위해 콜백 계약을 사용합니다. 클라이언트는 서버와의 연결을 캐시하여 여러 요청에 사용할 수 있습니다. 연결은 장기간 지속됩니다. – Sindhudweep
OK - 저는 이것이 아주 좋은 생각이라고 생각하지 않지만 설정에 대한 세부 사항을 모르겠습니다. 안타깝게도 WCF 3.5에서는 관리 및 감시에 대한 지원이 거의 없습니다.이 기능은 "Dublin"프로젝트의 일부가 될 것입니다. IIS7/WAS에 대한 관리 추가 기능은 .NET 4 (2010 년 3 월 이후에 제공 될 예정입니다.). –