문제

어쩌면 이것은 명백한 질문일지도 모릅니다. 모든 버튼 푸시가 원격 WCF 서비스에서 다른 기능을 호출하는 GUI 제어 응용 프로그램을 상상해보십시오. 버튼 사용은 약 몇 초마다 자주 발생합니다. 일반적으로 WCF 채널을 열고 닫는 것이 가장 좋습니까? 물론이 응용 프로그램에는 몇 가지 인스턴스화 만 있다고 가정합니다.

NB. 이 질문은 실제로 예제에 관한 것이 아니라 여기에서 모범 사례를 고려할 수 있도록 도와줍니다.

도움이 되었습니까?

해결책

채널을 열어 두는 것이 좋지 않지만 WCF를 떠나 물리적으로 닫을지를 결정하십시오. 동일한 클라이언트 객체를 반복해서 사용하여 일부 리소스를 저장할 수 있습니다.

다른 팁

모든 통화 전에 클라이언트 프록시를 재현하지 않아도되는 경우, 그것은 당신의 성과에 확실히 도움이 될 것입니다.

하지만: 그렇게하면 서버 측의 모든 예외가 올바르게 처리되도록해야합니다 (아마도 IErrorHandler 서비스의 인터페이스) 및 비누 결함으로 바뀌었고, 채널을 결함없이 클라이언트로 다시 전송할 수 있습니다.

단일 예외가 귀하를 피하고 "일반".NET 예외로 클라이언트로 다시 전송되면 채널 (클라이언트와 서버 간의 통신 링크)은 다음과 같습니다. 결함 -> 즉, 쓸모 없게되었습니다.

이 경우 먼저 해당 상태를 확인해야합니다 (채널에는 .State 속성), 그리고 결함이있는 채널을 만나면 메소드를 호출하기 전에 클라이언트 프록시를 다시 만들어 낼 수있는 일은 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top