서버에서 호스팅되는 WCF 서비스를 호출하는 코드 조각이 있습니다.WCF : 시간 초과 오류
코드는 반복적으로이 메서드를 호출 할 때마다 계속 순환합니다. (그것은 '상태'를 요구하는 것이므로 어떤 일도하지 않습니다.)
잠시 후 오류가 발생하는 경우를 제외하고는 괜찮습니다.
이 요청 작업은 net.tcp : // serverName : 9001/service1에 전송되어 구성된 시간 제한 (00:00) 내에 응답을받지 못했습니다. : 09.9843754)
갑자기 서버에 연결할 수 없습니다. 타임 아웃을 1 분으로 늘렸지 만 여전히 같은 문제입니다. 서비스를 호스팅하는 프로그램은 아무것도하지 않고 '상태'만 제공한다는 점에 유의하십시오. 따라서 WCF 서비스 앱이 사용 중이므로 문제가되지 않습니다.
서비스를 호출하는 코드에 문제가 있다고 생각합니다. 서비스를 다시 시작할 때 서비스가 정상적으로 연결될 수 있기 때문입니다 ... 또 다른 짧은 시간이 지나면 다시 시간 초과 오류가 발생합니다. 이런 이유로 나는 그것이 네트워크 오류 중 하나를 thnk하지 않는다. 나는 앱을 재시작 할 때 일정 시간 동안 괜찮을 것이다.
다음은 서비스를 호출하는 데 사용하는 코드입니다. 내가 그것을 정리하거나 각하 worng 뭐하는거야 각 호출 후 ChannelFactory 처분해야합니까?
NetTcpBinding binding = new NetTcpBinding(SecurityMode.Message);
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
EndpointAddress endPoint = new EndpointAddress(new Uri(clientPath));
ChannelFactory<IClient> channel = new ChannelFactory<IClient>(binding, endPoint);
channel.Faulted += new EventHandler(channel_Faulted);
IClient client = channel.CreateChannel();
((IContextChannel)client).OperationTimeout = new TimeSpan(0, 0, 10);
ClientStatus clientStatus = client.GetStatus();
상태가 잘못되면 이웃 Close() 또는 About()이 호출되기 때문에 작동하지 않습니다. try 블록 내에서 client.GetState()를 이동하거나 Close()를 호출하기 전에 코드 분할을 제거해야합니다. –