В настоящее время мы поддерживаем несколько служб WCF, работающих в среде с балансировкой нагрузки. Раньше мы использовали wsHttpBinding и устанавливали для installSecurityContext значение false, чтобы служба могла правильно работать с нашим балансировщиком нагрузки.
Проблема, с которой мы столкнулись, заключается в том, что wsHttpBinding по умолчанию шифрует возвращаемые результаты и, по-видимому, не может быть отключен. Это вызывает проблемы с устройством сжатия Riverbed, которое есть в нашей сети, т. Е. Зашифрованные данные сжимаются не очень хорошо ( или вообще).
Теперь мы пытаемся использовать basicHttpBinding, поскольку по умолчанию он не шифрует данные. У нас есть два требования:
Работа с балансировщиком нагрузки - похоже, это возможно за счет установки для keepAliveEnabled значения false. Это требует использования настраиваемой привязки. Например:
<customBinding> <binding name="NewBinding0"> <httpTransport authenticationScheme="Ntlm" **keepAliveEnabled="false"** /> </binding> </customBinding>
Передает учетные данные пользователя - это возможно, если установить режим безопасности на TransportCredentialOnly. Это доступно с помощью basicHttpBinding. Например:
<basicHttpBinding> <binding name="NewBinding1"> <security **mode="TransportCredentialOnly"** /> </binding> </basicHttpBinding>
Итак, теперь мой актуальный вопрос: -) ... Как / возможно ли объединить два вышеуказанных требования в одну настраиваемую привязку? Что эквивалентно # 2 выше для пользовательской привязки? Как я могу заставить его передать учетные данные пользователя?
Спасибо!