Как я могу установить прокси-сервер 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?
по теме:
- how-to-set-proxy-with-credentials-to-generated-wcf-client