Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF Client consuming multiple services

I'm trying to figure out how to set up my web.config (the client) to consume two different WCF web services one using the other using

I have the two endpoint, I guess I need two different Binding configurations. This is my current binding node:

<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>

I can't add another basicHttpBinding node. The thing is if ALL I changed was the mode parameter in <security mode="Transport"> then the binding will work great for one or the other endpoint.

This seems like a common issue, but have not found an answer. Overall I'm not very experiences with WCF (if that is not obvious) outside the simple consume and call. Any help would be GREAT!

This article was close but not quite the same issue as they did not need a different security mode.: How to consume multiple WCF services from one client

Thanks in advance.

like image 531
SCEV Avatar asked Mar 24 '10 17:03

SCEV


1 Answers

You just need to add another <binding> node, with a different name and whatever different options you like, under the <basicHttpBinding> node.

Then, obviously, just make sure each client is configured to use the binding that's specific to them by setting the appropriate name in the bindingConfiguration attribute for each <endpoint> node.

like image 54
Drew Marsh Avatar answered Oct 08 '22 08:10

Drew Marsh