У нас есть некоторые проблемы со службами WCF, и я делаю некоторые тесты:
Я только что создал новый клиент WCF и сервис с настройками по умолчанию и отслеживаю, как это работает на уровне TCP. Я использую .net 4.0 и net.tcp привязка
И что я вижу: после использование оператора закрывает WCF, на самом деле не закрывает соединение с сервером ...
На уровне TCP он должен отправить пакет [FIN] на сервер, но вместо этого он ничего не делает, просто ждет и через 2 минуты сервер завершает соединение с пакетом [RST]. Я прикрепил несколько скриншотов из wireshark
Я верю, что так работает wcf, но я не смог найти какую-то информацию, чтобы подтвердить это.
Также я заметил, что если после закрытия оператора using я открываю новый оператор using, он использует тот же порт для связи на стороне клиента ... (portharing на клиенте false)
Мои вопросы:
- Почему WCF не закрывает соединение с сервером после использования оператора
закрытая?
- Что я могу сделать, чтобы правильно закрыть соединение (отправить оператор [FIN])?
Спасибо.
постскриптум Я не прилагаю никаких конфигов, потому что это значения по умолчанию, которые VS2010 создает для меня.