2008-10-29 5 views
5

WCF 서비스를 사용하여 일부 데이터를 백엔드 데이터베이스에 삽입하는 클라이언트 응용 프로그램이 있습니다. 클라이언트 응용 프로그램은 이벤트별로 서비스를 호출합니다 (매시간 또는 매 초마다 가능).WCF 클라이언트에 가장 적합한 방법

나는이 서비스를 호출하는 가장 좋은 방법이 무엇인지 궁금합니다.

통신 채널을 만들고 항상 열어 두어야합니까? 아니면 각 통화 후에 채널을 닫고 다시 만들어야합니까?

+0

WCF 호스트 및 클라이언트 인터페이스 및 구현을 만드는 방법에 대한 한 가지 힌트 : 클라이언트 개체 "호스트"와 호스트 개체 "클라이언트"를 호출하십시오. 클라이언트 측에서는 "IClientSideComms"가 아닌 호스트에 접속하려고합니다. – Will

답변

5

첫 번째 질문은 서버가 클라이언트에 대한 상태를 직접 유지해야하는지 여부입니다 (예 : 세션과 유사한 트랜잭션을 수행하고 있습니까?). 그렇다면 서버가 서버간에 정보를 보유하는 방법을 관리 할 수 ​​있어야합니다. 연락.

내 첫 느낌은 연결을 열어 둘 필요가없는 경우 매번 닫고 요청에 따라 새 연결을 다시 작성하는 것입니다. 이렇게하면 연결간에 오류가있는 상태가 될 수있는 문제는 피할 수 있습니다. 연결을 생성하고 파기하는 오버 헤드가 최소화되며, 오류가 발생할 때 디버깅에 많은 시간을 절약 할 수 있습니다.

1

통신 활동이 0 인 상태에서 연결 유지 기간 이상으로 지난 경우 연결을 닫도록 기본 메커니즘에 알리는 구성 가능한 지속 시간을 사용하여 Keep Alive pattern을 구현하고 싶습니다.

관련 문제