Как я могу установить Прокси HTTP (WebProxy) на клиентском Сервисном прокси WCF?

с использованием работы с кодовым блоком 3.0, есть новая функция, доступная для отдельной или где и где операции. То есть группировка и конец группы

код, как,

$this->db->where('LastName', 'Svendson');
$this->db->where('Age', 12);
$this->db->group_start();
$this->db->or_where('FirstName','Tove');
$this->db->or_where('FirstName','Ola');
$this->db->or_where('Gender','M');
$this->db->or_where('Country','India');
$this->db->group_end();
$query = $this->db->get('Persons');
return $query->result();
47
задан Community 23 May 2017 в 11:54
поделиться

3 ответа

Параметры прокси являются частью конфигурации привязки. Например, посмотрите на свойство ProxyAddress классов / элементов конфигурации BasicHTTPBinding и WSHttpBinding .

Похоже, вы оставляете конфигурацию конечной точки в app.config, и в этом случае вы сможете указать там адрес.

26
ответ дан 26 November 2019 в 19:31
поделиться

Имеет смысл, что свойство Proxy отсутствует в Прокси-сервер WCF, поскольку не все прокси-серверы WCF используют HTTP для связи. После дальнейшего просмотра я обнаружил, что можно программно установить прокси в WCF, если прокси-сервер WCF использует привязку HTTP. Я документирую это здесь на случай, если это понадобится кому-то другому. Чтобы установить прокси-сервер HTTP в коде для клиента WCF, сделайте следующее:

// instantiate a proxy for the service
var svc= new ServiceClient();
// get the HTTP binding
var b = svc.Endpoint.Binding as System.ServiceModel.BasicHttpBinding;
b.ProxyAddress = new Uri("http://127.0.0.1:8888");
b.BypassProxyOnLocal = false;
b.UseDefaultWebProxy = false;

А чтобы установить адрес конечной точки - где добраться до сервера - в коде, вы должны сделать что-то вроде этого:

var e = svc.Endpoint;
e.Address = new System.ServiceModel.EndpointAddress(
    "http://remoteserver:5555/WcfXmlElement");
55
ответ дан 26 November 2019 в 19:31
поделиться

У меня была аналогичная проблема, но мне также нужно было использовать имя пользователя и пароль для прокси, которые отличаются от имени пользователя и пароля, используемых для доступа к службе.

Я попытался создать его через UriBuilder, который выведет адрес прокси в виде " http: // username: password @ myproxyserver/ ". К сожалению, конкретный прокси-сервер, который я использовал, не работал с этой техникой.

После обширного поиска в Google я обнаружил, что вы можете изменить прокси-сервер через WebRequest.DefaultProxy (статическое свойство).

Например:

WebProxy proxy = new WebProxy("http://myproxyserver",true);
proxy.Credentials = new NetworkCredential("username", "password");
WebRequest.DefaultWebProxy = proxy;
21
ответ дан 26 November 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: