Как создать / имитировать постоянное TCP-соединение?

Похоже, 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 на стороне клиента как надежный обмен сообщениями.

6
задан abatishchev 22 August 2011 в 07:47
поделиться