2013-05-15 5 views
2

나는 두 개의 프로그램 (하나의 exe와 하나의 dll이 다른 third-ex exe의 프로세스 공간에로드 됨)이 로컬 시스템 wcf 서비스 (net named pipe binding 사용)를 사용하여 요청을 서로 통신하는 상황이 있습니다. 서비스 호스팅을 시작하는 세 번째 호스트 exe가 있습니다. 그것은 모두 훌륭합니다 (지금까지 어쨌든 ... 저는 여전히 배우고 있습니다).하지만 채널 결함이나 서비스 시간 초과가 발생할 경우 어떻게 될지 생각해야합니다. 결함을 확인하고 처리하고 채널을 활성 상태로 유지하는 가장 좋은 방법은 무엇입니까?WCF 서비스를 활성 상태로 유지하는 방법?

내 경우에는 응용 프로그램을 열어 두거나 닫는 것이 사용자의 몫이 될 것이며 주중이나 야간에 열어 두는 경향이있는 사용자가있을 것입니다. 실수 나 서비스 상실의 가능성을 열어 놓고 나는 회복 할 수있는 단서가 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

1

첫째, 채널을 무기한으로 유지하는 이유는 무엇입니까?

하루 동안 읽으려는 데이터베이스에 연결한다고 가정 해보십시오. 아침에 데이터베이스 연결을 만든 다음 저녁에 데이터베이스 연결을 닫으시겠습니까?

채널을 재사용해야하는 경우 서로간에 몇 초 내에 여러 번 전화를 걸지 않는 한 WCF에서 채널을 구성하는 것이 상대적으로 저렴합니다.

편집

이 게시물을 수행하는 방법에 대해 설명합니다. 그것은 꽤 복잡하고 그냥 (게시물의 끝에서 제안) 코드에서 바인딩 거대한 시간 초과 값을 설정하는 것이 더 쉬울 수 있습니다

Do WCF Callbacks TimeOut

편집의 톤이있다

google에 관한 내용 : http://bit.ly/10ZPWE2

+0

이중 채널의 경우 닫히면 콜백이 작동하지 않습니다. – bjhuffine

+0

예, 듀플렉스의 경우 채널을 열린 상태로 유지해야합니다. WCF에서 양방향 채널을 사용하지 않는 여러 가지 이유 중 하나입니다. –

+0

필자의 경우 선택의 여지가 없다. 기본적으로 내 현재 요구 사항 및 환경으로 인해 dll과 exe 사이에서 작동하는 자체 개발 메시징/요청 서비스를 만들고있다. 그래서 ... ServiceHost와 채널 둘 다 ... 결함을 처리하고 살아있게하는 가장 좋은 방법은 무엇입니까? – bjhuffine

관련 문제