Я написал класс, который отвечает за вызов сторонней службы WCF, и он работает нормально.Наше приложение может быть настроено с настройками прокси локальной сети, поэтому остается только использовать эти настройки (если они были установлены) при совершении вызова.
Я осмотрелся и могуне вижу ничего, что четко указывает, как это сделать.Я обнаружил, что используемый мной объект BasicHttpBinding имеет свойство ProxyAddress, но там нет ничего, что позволяло бы мне определять сетевые учетные данные или имя пользователя и пароль.
Вероятно, это прямо здесь, передо мной, поэтому я думаю,Мне просто нужно указывать в правильном направлении.По крайней мере, я надеюсь, что это так просто!Все, что мне нужно сделать, это сообщить моему сервисному вызову, что такое локальный прокси-сервер и какие учетные данные использовать.
Это мой код, который создает экземпляр класса обслуживания.Я пропустил следующую часть, которая создает класс запроса, вызывает метод службы и обрабатывает результат.
// Create the service instance.
var binding = new BasicHttpBinding();
var endPoint = new EndpointAddress(new Uri(_servicesBaseUri + "MyServiceName"));
var service = new WSHsgCreateSchemeRepairClient(binding, endPoint);
// Add the MessageInspector to the contract behaviours list. This will inject the SecurityHeader XML and the SOAP action.
var soapAction = _servicesBaseUri + "MyServiceName/MyServiceMethod";
service.Endpoint.Contract.Behaviors.Add(new MessageInspector(_securityHeaderUsername, _securityHeaderPassword, soapAction));
У нас есть некоторые другие вызовы веб-службы (которые используют старый подход веб-службы), и они генерируютновый экземпляр System.Net.WebProxy и установите его для свойства Proxy класса обслуживания, но, очевидно, он отличается в WCF.
Спасибо.