2009-02-27 6 views
2

클라이언트가 서버에 가입하고 서버가 클라이언트에 데이터를 푸시하는 WCF를 사용하여 대부분 코드를 작성했습니다.WCF의 콜백에 대해 receiveTimeout을 설정 하시겠습니까?

나는 약간의 시간 동안 실행 중이며 클라이언트에 데이터를 보내려고 시도했지만 예외가 발생하여 receiveTimeout 속성을 설정해야한다고했습니다.

어디에서이 속성을 설정할 수 있습니까? 어디에서나이 문제는 svcutil.exe를 사용하여 WCF 코드가 생성 된 것으로 보입니다. 나는이 작업을 수행하지 않았으며 다시 처음부터 다시 시작하고 싶지 않습니다.

답변

3

파이프 클라이언트 측을 만들 때 명시 적으로 바인딩 시간 초과를 설정해야한다는 것을 알았습니다.

NetNamedPipeBinding binding = new NetNamedPipeBinding(); 
binding.ReceiveTimeout = new TimeSpan(1,0,0); 
binding.SendTimeout = new TimeSpan(1,0,0); 
DuplexChannelFactory<IVdnServer> pipeFactory = new 
    DuplexChannelFactory<IVdnServer>(_subscriber, binding, 
     new EndpointAddress("net.pipe://localhost/PipeService")); 

그리고 서비스 끝점 서버 쪽을 만들 때 명시 적으로 시간 제한을 설정해야합니다.

NetNamedPipeBinding binding = new NetNamedPipeBinding(); 
binding.ReceiveTimeout = new TimeSpan(1,0,0); 
binding.SendTimeout = new TimeSpan(1,0,0); 

_host.AddServiceEndpoint(typeof(IVdnServer),binding , "PipeReverse"); 
관련 문제