2014-07-26 5 views
2

제 질문은 "예의"와 성능/전문성에 대한 것입니다.WCF 연결을 열어 두거나 전화가 올 때마다 열어두기

클라이언트의 PC에서 클라이언트/서버 통신과 관련된 좋은 방법으로 간주되는 사항. 내 앱은 wcf 서버에 특정 정보를 "기록"합니다. 내 서버는 LAN이나 로컬 인터넷 (서버 측 포트 포워딩 등)에서 로컬로 실행할 수 있습니다.

오버 헤드는 소량의 데이터를 로깅하므로 실제로 걱정하지 않지만 자주 로깅합니다 ... 10 초마다 말하도록합니다.

내 WCF 개체를 한 번 인스턴스화 (응용 프로그램 시작시 클라이언트에서 서버에 연결)하거나 10 초마다 새 wcf 연결 (wcf 파생 된 호출)을 인스턴스화합니까?

좋은 연습으로 간주되는 것. 나는 클라이언트 리소스와 함께 적절한 예절을 적용하는 것에 관심이있다.

나에게 알려줄 수있는 좋은 자료가 있습니까?

답변

5

가장 좋은 방법이 미셸 레녹스 부스타 (Learning WCF - A Hand's On Guide의 저자)와 쥬발 로이 (고급 Programming WCF Services의 저자) 설교가 통화 당 활성화을 사용하는 것입니다 같은 모든 WCF 지도자 : 각 요청의 자신의 인스턴스를 생성 서비스 클래스를 호출하고 요청을 처리 한 후 호출 후에 서비스 인스턴스를 다시 버립니다.

이것은 가장 확장 성이 뛰어난 시나리오입니다.

다른 모든 시나리오 (세션 별, 멀티 스레드 서비스 클래스 사용 또는 싱글 톤 사용)는 전반적인 시스템 성능에 큰 영향을 미치거나 상당히 복잡한 프로그래밍 경험 (멀티 스레드 안전 서비스 클래스)을 유발합니다.

매우 다른 이유가있는 경우가 아니면을 다른 설정으로 사용하려면 통화 별 WCF 서비스를 사용하는 것이 좋습니다.