Как установить прокси-сервер HTTP (WebProxy) на прокси-сервере службы на стороне клиента WCF?

Как я могу установить прокси HTTP программно, на клиенте WCF, не используя прокси по умолчанию?

Прокси, прокси, прокси.

В соответствии с моделью разработки WCF, я генерирую «прокси» классы на стороне клиента, запустив svcutil.exe в WSDL для службы. (Это также создает файл конфигурации на стороне клиента).

В своем коде я обновляю экземпляр этого класса и могу подключиться к сервису. Очень хорошо.

var svcProxy = new MyWebService();
svcProxy.GetInformation(request); 

Мы называем эту вещь прокси-классом, но есть другой прокси-сервер - http-прокси. Этот сервис использует wsHttpBinding basicHttpBinding, поэтому он работает через http. Теперь предположим, что я хочу подключить клиента к веб-службе через http-прокси (смоделированный System.Net.WebProxy в .NET BCL). Из моего обширного, восхитительного опыта чтения документации .NET и WCF я знаю, что среда выполнения WCF, если не указано иное, будет использовать системный прокси-сервер по умолчанию при обмене данными через http / https.

Я могу установить это из командной строки в WinXP / 2003с ProxyCfg.exe, как описано здесьи в более поздних версиях Windowsс netsh.exe, как описано здесь.

Я также могу указать веб-прокси по умолчанию для использования в приложении, установивСвойство System.Net.WebRequest.DefaultWebProxy.

Но предположим, что я хочу подключиться через прокси, который отличается от общесистемного прокси? Например, возможно, нет общесистемного прокси, но мне нужно использовать его для веб-службы, в частности. Или, может быть, есть общесистемный прокси, но мне нужно использовать другой, для веб-службы. И на самом деле, может быть, есть несколько клиентов веб-служб, и каждый из них должен получить свой прокси-сервер.

Как можно установить прокси для привязки?

В модели ASMX я мог бы сделать это:

var svcProxy = new MyWebService();
svcProxy.Proxy = new System.Net.WebProxy("http://proxyserver:1234", true);
svcProxy.GetInformation(request); 

Но это невозможно с WCF; сгенерированные WCF клиентские прокси-классы не предоставляют свойство Proxy. Как настроить прокси-сервер http для каждого клиентского прокси-сервера и как настроить аутентификацию на прокси-сервере http?

Связанный:
- как в настройке прокси-с учетными-на-генерируемой-ФОС-клиент

Ответы на вопрос(4)

Ваш ответ на вопрос