title: Configure a WCF service with 2 endpoints with different binding configurations
body: <p>I created a WCF service with WsHttpBinding, with 2 binding configurations (this is the requirement for 2 different client). One client wanted the service to have Message security mode with clientCredential as "Windows" and the other client wanted the service to have Transport security mode with ClientCredentialType as "Certificate". I am able to browse my Client2 service but unable to browse my client1.
  Here is my web.config with 2 bindings:</p>
  
  <pre><code>    &lt;system.serviceModel&gt;
      &lt;services&gt;
        &lt;service name="TestService.TestService" behaviorConfiguration="mexBehavior"&gt;
          &lt;endpoint address="Client1" binding="wsHttpBinding" contract="TestService.ITestService" bindingConfiguration="TestService_Client1_ITestService" &gt;
           &lt;identity&gt;
              &lt;dns value="" /&gt;
            &lt;/identity&gt;
           &lt;/endpoint&gt;    
          &lt;endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/&gt;          
          &lt;endpoint address="Client2" binding="wsHttpBinding" contract="TestService.ITestService" bindingConfiguration="TestService_Client2_ITestService" /&gt;                               
        &lt;/service&gt;                    
      &lt;/services&gt;
      &lt;behaviors&gt;
        &lt;serviceBehaviors&gt;
          &lt;behavior name="mexBehavior"&gt;           
            &lt;useRequestHeadersForMetadataAddress /&gt;
            &lt;serviceMetadata httpsGetEnabled="true" httpGetEnabled="true" /&gt;
            &lt;serviceDebug includeExceptionDetailInFaults="true" /&gt;                            
          &lt;/behavior&gt;
        &lt;/serviceBehaviors&gt;        
      &lt;/behaviors&gt;  
      &lt;bindings&gt;
        &lt;wsHttpBinding&gt;                
          &lt;binding name="TestService_Client1_ITestService"&gt;         
              &lt;security mode="Message"&gt;
                  &lt;transport clientCredentialType="Windows" proxyCredentialType="None"
                  realm="" /&gt;
                  &lt;message clientCredentialType="Windows" negotiateServiceCredential="true"
                  algorithmSuite="Default" /&gt;
              &lt;/security&gt;
          &lt;/binding&gt;
  
          &lt;binding name="TestService_Client2_ITestService"&gt;             
              &lt;security mode="Transport"&gt;
                    &lt;!--&lt;transport clientCredentialType="None" /&gt;--&gt;
                    &lt;transport clientCredentialType="Certificate" /&gt;
              &lt;/security&gt;         
          &lt;/binding&gt;          
      &lt;/wsHttpBinding&gt;
  &lt;/bindings&gt;
  </code></pre>
  
  <p>Below are the settings I did in IIS:</p>
  
  <p>1) Created a new website "TestService"</p>
  
  <p>2) In Bindings: 
  a) added https with port: 444 and selected the appropriate certificate
  b) added http with port: 90</p>
  
  <p>3) In IIS TestService Feature View-->SSL Settings-->Require SSL (enabled), Accept and apply</p>
  
  <p>4) Authentications-->Forms Authentication, Windows, Anonymous Enabled</p>
  
  <p>Please suggest me what changes should I make to the config or IIS so that I have both the end points working...</p>
  
  <p>Also, I named by endpoints as Client1 and Client2 assuming I should be able to browse them as<br>
  a) <a href="http://localhost:90/TestService.svc/Client1" rel="nofollow">http://localhost:90/TestService.svc/Client1</a><br>
  b) <a href="https://localhost:444/TestService.svc/Client2" rel="nofollow">https://localhost:444/TestService.svc/Client2</a></p>
  
  <p>Currently, I am able to browse my service (client2) with<br>
  <a href="https://localhost:444/TestService.svc/" rel="nofollow">https://localhost:444/TestService.svc/</a></p>
  
  <p>If I add Client2 at the end, it is not working. I am not sure if my endpoint address names are even working or not.</p>
  
  <p>Thanks</p>