2011-12-13 5 views
0

WCF에서 this 자습서를 따르고 모든 것이 잘 작동합니다. 그 간단한 코드처럼 클라이언트에서 서버에 이르기까지 모든 메서드를 호출 할 수 있어야합니다. 나는 파이프에만 관심이 있고 네트워킹도 전혀하지 않습니다.WCF 객체가 ChannelFactory lifetime에 의해 생성되었습니다.

나는 이러한 개체가이 코드에 같은 pipeProxy, 서버에서 반환 어디 선가 읽은 기억

IStringReverser pipeProxy = pipeFactory.CreateChannel(); 

배치 또는 완료 또는 그런 일 수 다음 5 분을 지속 할 것이다. 사실입니까? 내 서버 메소드 중 하나를 호출 할 때마다 ChannelFactoryCreateChannel으로 전화해야합니까? 또한 ChannelFactory 인스턴스를 유지할 수 있습니까? 아니면 잠시 후 자살을 할 수 있습니까?

나는이 세부 사항에 대한 많은 정보를 찾을 수 없으며 내가 찾은 것은 주로 http과 네트워킹에 대해 신경 쓰지 않는 것들에 관해 이야기하는 거대한 고급 자습서입니다. 내가 원하는 것은 동일한 기계에있는 두 응용 프로그램 간의 기본 통신을하는 것입니다. 응용 프로그램 A에서 응용 프로그램 B로 메소드를 호출 할 수 있다는 것이 전부입니다.

그래서 제가 두려워해야 할 결함이 있습니까? 아니면 링크 된 튜토리얼에 게시 된 코드입니까? 튜토리얼에서 코드를 가져 와서 샘플 클래스에 메소드를 계속 추가하면 모든 것이 올바르게 작동할까요? 또는 다른 무엇입니까 알고 계십니까?

답변

1

채널 팩토리를 유지할 수 있습니다. 실제로 만들려면 비용이 많이 들기 때문에해야합니다.

반면에 새로운 채널을 만드는 것은 비용이 많이 드는 작업이 아니며 전화를 걸거나 다시 시도해야 할 때마다 새 채널을 만들 수 있습니다.

5 분에 대한 참조를 찾을 수 없으므로 튜토리얼의 의미는 5 분 이상 연결을 열면 시간 초과가 발생한다는 것입니다. 두 응용 프로그램간에 항상 연결을 유지하려면 DuplexChannels을 대신 묻는 것이 좋습니다

+0

연결 시간이 초과되었다는 것은 튜토리얼의 예에서 무엇을 의미합니까? 생성 된 5 분 후에 'pipeProxy' 메서드를 호출하려고하면 예외가 발생합니까? – Juan

+0

아니요, 전화를 걸면 5 분 이상 걸리는 경우 예외가 발생합니다. 어쨌든 왜 채널을 만드는 5 분 후에 전화를 걸겠습니까? 통화가 끝나기 전에 전화를 걸고 처분하십시오. –

+0

좋아요. 어떻게되는지 보도록하겠습니다. – Juan

관련 문제