저는 클라이언트 측 서버 시스템을 가지고 있으며 서버 측 연결이 끊어 지거나/자동 종료 될 때 클라이언트를 '오프라인'상태로 만들고 싶습니다. 서버를 다시 사용할 수있게되면 '온라인'으로 돌아갑니다.WCF - 서비스 가용성에 대한 클라이언트 검사가 있습니다.
첫 번째 부분에서는 채널 오류 이벤트를 수신하고 클라이언트를 오프라인으로 설정하여 처리합니다. 그런 다음 서버에 '핑 (ping)'서비스를 호출하기 시작합니다 (매 30 초마다). 일단 그것이 살아 있으면 클라이언트는 bool을 얻고 온라인으로 다시 전환합니다.
이 모든 문제는 클라이언트가 ping 서비스를 호출하고 서버가 다운되었을 때 아무런 응답도 보내지지 않으며 결국 약 2 분 후에 종단점을 찾을 수 없다는 예외가 발생합니다. 이 시간까지 나는 이미 3-4 번 더 핑을 시도 했으므로 3-4 번의 양조 예외가 있습니다.
제 질문은 어떻게하면 정상적으로 핑 서비스를 처리 할 수 있습니까? 이상적으로는 온라인 상태인지 여부를 알려주는 서비스를 주기적으로 호출하고, 그렇지 않은 경우 즉시 알려주고 싶습니다.
덕분에, 윌
감사합니다. 마크, 훌륭한 아이디어는 내가 한 것입니다. 나는 이런 식으로 바인딩 타임 아웃을 편집 할 수 있다는 것을 완전히 잊었다. – WillH
서버 연결이 끊어졌습니다. 어떻게 감지합니까? –
@Ashutosh : 서버 연결이 끊어지면 몇 가지 오류 ("찾을 수 없음"또는 "시간 초과"또는 기타 오류 중 하나)로 통화가 실패합니다. –