Работа WCF-клиента через web proxy - CodeHelper

Работа WCF-клиента через web proxy

1

Клиент WCF взаимодействует с сервером через протокол HTTP. Будет ли эта связка корректно работать, если клиент выходит в интернет через web-proxy? Нужно ли для этого писать дополнительную конфигурацию для клиента?

Лучший ответ:

3

По умолчанию клиент WCF использует настройки proxy, которые заданы в системе. То есть те, которые устанавливаются в Internet Explorer. Если требуется задать специфичные настройки proxy, то можно использовать параметр proxyAddress и указать, что не нужно использовать системные настройки (useDefaultWebProxy=false):

<basicHttpBinding>
  <binding name="MyClientBinding" proxyAddress="http://proxy:8080" useDefaultWebProxy="false">
  </binding>
</basicHttpBinding>

Можно также вынести эти настройки в конфигурацию binding:

<binding name="CommonBinding">
    <binaryMessageEncoding />
    <httpTransport proxyAddress="http://proxy:8080" useDefaultWebProxy="false" />
</binding>

Можно также определить глобальные настройки прокси для всех ендпойнтов:

<system.net>
  <defaultProxy useDefaultCredentials="true">
    <proxy bypassonlocal="False" proxyaddress="http://proxy:8080" />
  </defaultProxy>
</system.net>

Взято из статьи Configuring a proxy-server for WCF. Также в статье подмечена интересная деталь: если клиент работает с локальным сервером, то настройки прокси игнорируются и все запросы идут напрямую. Чтобы избежать такой ситуации нужно в адресе сервера писать не localhost, а имя машины.

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.