2011-10-28 1 views
1

ChannelFactory.CreateChannel()을 사용하여 서비스 작업을 수행하기 전에 채널을 매번 생성합니다. 수술이 끝나면 예외가있는 경우 채널을 닫거나 중단합니다.WCF : ChannelFactory를 사용하고 각 작업에 채널을 생성하는 경우 Channel.Faulted 이벤트를 수신해야합니까?

매번 채널을 만들고 있으므로 "오류가있는"이벤트를 청취해야합니까?

채널에 의해 모든 작업이 완료되면 채널 FACTORY에 Faulted 이벤트가 발생하는 이유는 무엇입니까?

또는이 공장에서 생성 된 채널 중 하나라도 오류가 발생하면 발생합니까?

미리 감사드립니다. 몽상가!

답변

2

오류가 발생한 이벤트를 듣는 유일한 이유는 이벤트가 발생하면 (채널 중단 이외의) 특정 작업을 수행하려고 할 때입니다. 나는 머리 꼭대기에서 그것을 사용할 이유를 생각할 수는 없지만, 그렇다고해서 그것이 존재하지 않는다는 것을 의미하지는 않습니다.

오류가 발생했을 때 채널을 중단하면 문제가 발생하지 않습니다. 오류 발생 이벤트를 처리 할 필요가 없습니다.

FactoryChannel<T>은 오류가있는 이벤트를 정의하는 ICommunicationObject을 구현합니다. MSDN은 "채널, 채널 관리자, 팩터 리 , 수신기 및 디스패처, 서비스 호스트를 포함하여 시스템의 모든 통신 지향 개체에 대한 기본 상태 시스템 계약을 정의합니다."

FactoryChannel<T>.CreateChannelIChannel 유형을 반환하며 ICommunicationObject도 구현합니다.

+0

그래서 그들은 동일합니까? (미안, 질문이 어리석은 소리가 난다면 나는 정말로 그것을 얻지 못한다 :-)) –