Соединение WCF net.tcp прекращается через 9 часов 1 минуту - PullRequest
7 голосов
/ 19 ноября 2010

У меня есть клиент WCF, разговаривающий с сервером WCF (на той же машине).Мы используем netTcpBinding с безопасностью на уровне сообщений (используя пользовательский PrincipalPermissionMode и пользовательскую реализацию serviceCredentials).Служба помечена InstanceContextMode.PerSession.

Служба WCF размещена в службе Windows (не в IIS).

Для того чтобы подделать keep-alive, у нас есть Ping метод, который клиент вызывает каждые 15 секунд.Мы оставляем клиентский прокси открытым в течение всего жизненного цикла клиентской программы (поскольку в нашем случае инициализация сеанса обходится дорого).

Несмотря на это, соединение прерывается через 9 часов, 1 минуту и ​​немного (через 10тестовые запуски, 7 из них умерли после 9h1m6s).

Единственным следствием в журналах WCF является сообщение «SocketConnection aborted», за которым следует различный набор исключений, но обычно включающийисключение "неисправное состояние".

Есть ли какое-то время ожидания в WCF или в TCP / IP, что является причиной этого?Потому что я в тупике.

Ответы [ 2 ]

3 голосов
/ 30 января 2011

После долгих утомительных расследований. Примерно через 9 часов клиент WCF повторно проходит аутентификацию в службе.Что-то, что я делаю во время шага аутентификации, убивает существующий сеанс.

2 голосов
/ 19 ноября 2010

Исходя из ваших комментариев выше, вы одновременно выполняли тесты.

Были ли они также на одном и том же сервере, используя один и тот же пул приложений?

Если это так, повторное использование приложенияпул мог вызвать одновременную остановку всех тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...