2010-03-24 12 views
6

Próbuję dowiedzieć się, jak skonfigurować web.config (klienta), aby spożywać dwa różne WCF webserwisach jedną używając drugiej korzystającklienta WCF zużywających wielu usług

Mam dwa końcowego, I zgaduję, że potrzebuję dwóch różnych konfiguracji wiązania. To jest mój bieżący węzeł wiążący:

<basicHttpBinding> 
    <binding name="WebServiceProxyServiceSoapBinding" closeTimeout="00:01:00" 
     openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00" 
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" 
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
      maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 

Nie mogę dodać kolejnego węzła basicHttpBinding. Chodzi o to, że jeśli WSZYSTKO, którego zmieniłem, to parametr trybu w <security mode="Transport">, to powiązanie będzie działać doskonale dla jednego lub drugiego punktu końcowego.

Wydaje się, że jest to typowy problem, ale nie znaleziono odpowiedzi. Ogólnie rzecz biorąc nie jestem bardzo doświadczeniem z WCF (jeśli to nie jest oczywiste) poza zwykłym spożyciem i wywołaniem. Każda pomoc będzie WIELKA!

Ten artykuł był blisko, ale nie całkiem ten sam problem, ponieważ nie wymagają innego trybu zabezpieczeń .: How to consume multiple WCF services from one client

Z góry dzięki.

Odpowiedz

6

Wystarczy dodać kolejny węzeł <binding> o innej nazwie i dowolnych innych opcjach, pod węzłem <basicHttpBinding>.

Oczywiście upewnij się, że każdy klient jest skonfigurowany do używania powiązania, które jest dla niego specyficzne, ustawiając odpowiednią nazwę w atrybucie bindingConfiguration dla każdego węzła .

+0

:) To było zbyt łatwe. Dziękuję Ci! – SCEV

1

Mam dwa końcowego, myślę muszę dwa różne miejsca wiązania konfiguracje. To jest mój obecny wiązania węzłów:

Niekoniecznie - jeśli te dwie usługi korzystają z tych samych ustawień i samych protokołów, jedna konfiguracja wiązania zrobi.

Co trzeba dodać dwa jest elementem klient:

<system.serviceModel> 
    <bindings> 
     ..... (as you already have it) .... 
    </bindings> 
    <client> 
     <endpoint name="Service1Endpoint" 
       address="http://yourserver/service1.svc" 
       binding="basicHttpBinding" 
       bindingConfiguration="WebServiceProxyServiceSoapBinding" 
       contract="IWCFService1" /> 
     <endpoint name="Service2Endpoint" 
       address="http://yourserver/service2.svc" 
       binding="basicHttpBinding" 
       bindingConfiguration="WebServiceProxyServiceSoapBinding" 
       contract="IWCFService2" /> 
    </client> 
</system.serviceModel> 

To powinno robić.

Oczywiście, jeśli drugi serwis używa innego wiązania, albo potrzebuje różnych ustawień zabezpieczeń, a następnie tak, że trzeba dodać drugi <binding name="something else" .....> pod węzłem <basicHttpBinding> i odsyłającego wynika, że ​​drugi konfiguracji powiązania z jednego z dwóch punktów końcowych klientów tutaj.

+0

Aw, widzę, że próbowałem dodać drugi węzeł , a nie drugi węzeł Binding! Dziękuję Ci! – SCEV

Powiązane problemy