Похоже, TCP-соединения WCF не являются постоянными. Ответ на первый эхо-запрос занимает некоторое время, но последующие процессы занимают меньше времени. Через некоторое время снова потребуется много времени - еще одно повторное подключение?
СЕРВЕР> Запущено на net.tcp: //0.0.0.0: 999
КЛИЕНТ> Создано соединение с net.tcp: // localhost: 999 // Не настоящее соединение, готово к подключению
КЛИЕНТ> Ответ на эхо-запрос через 1 с163 мс // Первое соединение
КЛИЕНТ> Ответ на эхо-запрос через 22 мс // Уже установлено
КЛИЕНТ> Ответ на эхо-запрос через 26 мс
КЛИЕНТ> Ответ на эхо-запрос через 24 мс
КЛИЕНТ> Ответ на эхо-запрос через 325 мс // Повторное подключение
КЛИЕНТ> Ответ на эхо-запрос через 19 мс
КЛИЕНТ> Ответ на эхо-запрос через 767 мс // Повторное соединение
Если это правда, то что такое простоя значение времени для tcp-соединения до того, как оно будет отключено? Мне нужно поддерживать соединение.
Обновление Измененный код:
NetTcpBinding tcpBind = new NetTcpBinding();
tcpBind.ReliableSession.Enabled = true;
tcpBind.ReliableSession.Ordered = true;
tcpBind.ReliableSession.InactivityTimeout = TimeSpan.FromMinutes(10);
ServiceHost svh = new ServiceHost(typeof(ServiceImplementation));
svh.AddServiceEndpoint(
typeof(WCFSimple.Contract.IService),
//new NetTcpBinding(),
tcpBind,
String.Format("net.tcp://{0}:{1}", ip, port));
svh.Open();
Теперь у меня другая ошибка:
Действие http://tempuri.org/IService/Pong - не поддерживается этой конечной точкой. Эта конечная точка обрабатывает только сообщения WS-ReliableMessaging от февраля 2005 г.
Обновление Я изменил только серверную часть, и это вызвало ошибку. Затем я изменил TCP на стороне клиента как надежный обмен сообщениями.