У меня есть фрагмент кода, который вызывает службу WCF, которая размещена на сервере.
Код продолжает циклически вызывать этот метод снова и снова.(Он запрашивает «статус», поэтому он вообще не выполняет никакой работы).
Это нормально, за исключением того, что через короткий промежуток времени я получаю сообщение об ошибке:
Эта операция запроса отправлена в сеть.tcp: // имя_сервера: 9001 / service1 не получил ответ в течение настроенного времени ожидания (00: 00: 09.9843754)
И вдруг я вообще не могу попасть на сервер НИКОГДА.Я увеличил время ожидания до 1 минуты, но проблема все та же.Обратите внимание, что программа, в которой размещается служба, больше ничего не делает, просто предлагает ее «статус».Так что проблема не в том, что приложение службы WCF занято.
Я думаю, что это проблема кода, вызывающего службу, потому что когда я перезапускаю приложение, оно может нормально подключиться к службе ... дочерез другое короткое время я снова получаю сообщение об ошибке.По этой причине я не думаю, что это также сетевая ошибка, так как при перезапуске приложения на некоторое время все в порядке.
Вот код, который я использую для вызова службы.Нужно ли утилизировать 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();