У нас есть сервисы WCF, которые работают по нескольким протоколам для разных клиентов. Большинство работает нормально, но когда мы используем SSL, соединения долго закрываются. Открытие соединения не проблема, но закрытие происходит очень медленно.
Самое странное поведение заключается в том, что время закрытия пропорционально количеству данных, которые были переданы по соединению. Если с сервера на клиент отправляется всего несколько байтов, соединение закрывается почти мгновенно, но поиск, который возвращает несколько сотен строк, занимает столько же времени, что и исходный поиск. Время закрытия кажется прямо пропорциональным количеству передаваемых данных. Похоже, что результаты передаются обратно на сервер для проверки перед закрытием соединения.
Ошибка почти не выдается, но время закрытия соединения по сути удваивает время, необходимое для выполнения вызова.
Вот основные настройки:
Пользовательская привязка
Двоичное кодирование
Надежный сеанс, Заказано = true
Связующим элементом является HttpsTransportBindingElement
использование RemoteCertificateValidationCallback
Все прокси создаются программно с помощью ChannelFactory.