2010-06-17 2 views
3

을 폐쇄하지 사이의 비교. 나는 WCF를 소비하는 적절한 방법은 ChannelFactory에를 만드는 것을 알고 (의이 AwesomeClient를 부르 자), 작업을 수행 한 다음에() 닫기 호출합니다. (10 회 분 말?) 나는 해봐요 매우 자주 호출 될 것으로 기대하고있다, 그러나WCF : ChannelFactory에 닫기 대 지속적으로 ChannelFactory에를 다시 나는 내 코드에서 소비하고 ChannelFactory에 클래스로 생성 된 WCF 서비스가 그것을

public static void DoSomething() 
    { 
     var client = new AwesomeClient(); 
     client.DoSomethingAwesome(); 
     client.Close(); 
    } 

, 내가 입수 한 조언은 정적 인스턴스로 ChannelFactory에 인스턴스를, 그리고 : 여기 내 코드 조각입니다 항상 같은 인스턴스를 재사용, 결코 (이 항상 폐쇄 후 ChannelFactory에를 다시하고보다 '저렴'이기 때문에)를 닫습니다 필요가 없습니다.

내가 두 번째 의견을 여기있어

, 사람이 좋은 생각이다 닫기를 호출하고 정적 인스턴스를 재사용하지 이유를 말해 줄 수? 아니면 모든 호출에 대해 ChannelFactory 및 Close()를 다시 작성해야합니까? 잠시가 종종있다

답변

3

10 배. 초당 10 번은 적어도 채널 재사용을 고려해야합니다.

좋은 결정을 내릴 귀하의 경우 미지수가 많이있다. 얼마나 많은 클라이언트가 서비스에 연결하는 건가요? 어떤 종류의 연결이 있습니까 (몇 초 안에 다운 될 가능성이 있습니까),로드 밸런서가 있습니까? 대리? 당신이 열고 채널마다 시간을 종료하기로 결정하는 경우

및 방법에 의해

은의 ChannelFactory에를 다시 할 필요가 없습니다. 정적 인 상태로 유지하고 매번 새 채널을 열고 닫습니다. 공장을 만드는 대부분의 시간은 더 많은 자원을 소비합니다.

+0

나는 열고 모든 호출을위한 새로운 채널을 폐쇄하기로 결정했습니다. 포인터 주셔서 감사. – Klaw

관련 문제