Я пытаюсь настроить прокси для моего клиента WCF в моем проекте базовой библиотеки. net (используется в asp. net core mvc проекте), но запрашивает go прямиком на адрес конечной точки, игнорируя прокси. Я не могу получить их ни в SoapUI Http Monitor, ни в Wireshark с установленным фильтром tcp.port для прокси-порта.
Вот мой метод создания и настройки клиента
public EventsServiceClient CreateService(IServiceProvider serviceProvider)
{
var encoding = new MtomMessageEncoderBindingElement(new TextMessageEncodingBindingElement());
var transport = new HttpTransportBindingElement();
transport.ProxyAddress = new Uri("http://localhost:4000");
transport.BypassProxyOnLocal = false;
transport.UseDefaultWebProxy = false;
var customBinding = new CustomBinding(encoding, transport);
var endpoint = new EndpointAddress("http://localhost:51625/Services/Implementations/Events/EventsService.svc/EventsService");
var service = new EventsServiceClient(customBinding, endpoint);
service.Endpoint.EndpointBehaviors.Add(new AuthorizeEndpointBehavior(this.configuration, serviceProvider));
return service;
}
Мой сервис использует MTOM-кодирование, поэтому я использую пользовательское связывание с MtomMessageEncoderBindingElement из WcfCoreMtomEncoder (https://github.com/lennykean/WcfCoreMtomEncoder).
Вот фрагмент моего файла web.config в WCF
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="authorizeInspector"
{...}
/>
</behaviorExtensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="developmentBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EventsServiceEndpointBehavior">
<authorizeInspector />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="EventsServiceBinding" >
<mtomMessageEncoding />
<httpTransport />
</binding>
</customBinding>
</bindings>
<services>
<service name="RSI.WebServices.Services.EventsService"
behaviorConfiguration="developmentBehavior">
<endpoint address="EventsService"
behaviorConfiguration="EventsServiceEndpointBehavior"
binding="customBinding"
bindingConfiguration="EventsServiceBinding"
contract="RSI.WebServices.Services.IEventsService">
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:51625/"/>
</baseAddresses>
</host>
</service>
</services>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
Я что-то здесь упускаю?