title: WCF Client From Windows 2000
body: <p>I have a WCF Service hosted on IIS. This service use wsHttpBinding X509 certification authentication and all works fine. Now I need to access to this service from a Windows 2000 machine and the problem is that the Framework 2.0 does not supports wsHttpBinding authentication but only basicHttpBinding.</p>
  
  <p>My questions:</p>
  
  <ul>
  <li><p>Is it possible expose two different endpoints (wsHttpBinding ssl X509 authentication and anonymous basicHttpBinding) in the SAME service (aka IIS application)? </p></li>
  <li><p>Is possibile to write a client application for Windows 2000 to connect to WCF service via wsHttpBinding X509 authentication (any language is accepted)</p>
  
  <pre><code>    &lt;behaviors&gt;
        &lt;serviceBehaviors&gt;
          &lt;behavior name="CertBehavior"&gt;
            &lt;serviceMetadata httpsGetEnabled="False"/&gt;
            &lt;serviceCredentials&gt;
              &lt;serviceCertificate findValue="CertServices" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName"/&gt;
              &lt;clientCertificate&gt;
                &lt;authentication certificateValidationMode="PeerTrust"/&gt;
              &lt;/clientCertificate&gt;
            &lt;/serviceCredentials&gt;
          &lt;/behavior&gt;
          &lt;behavior name="AnonBehavior"&gt;
            &lt;serviceMetadata httpGetEnabled="True"/&gt;
            &lt;serviceDebug includeExceptionDetailInFaults="true"/&gt;
          &lt;/behavior&gt;
        &lt;/serviceBehaviors&gt;
      &lt;/behaviors&gt;
  
    &lt;services&gt;
        &lt;service name="Server.Service1" behaviorConfiguration="CertBehavior"&gt;
          &lt;host&gt;
            &lt;baseAddresses&gt;
              &lt;add baseAddress="http://192.168.1.112:8732/Service"/&gt;
              &lt;add baseAddress="https://192.168.1.112/Service"/&gt;
            &lt;/baseAddresses&gt;
          &lt;/host&gt;
  
          &lt;endpoint address="" binding="wsHttpBinding" bindingConfiguration="CertBinding" contract="Server.IService1"/&gt;
        &lt;/service&gt;
      &lt;/services&gt;
  </code></pre></li>
  </ul>
  
  <p>///////////////////////////////////////////////////////////////////////////////////////////</p>
  
  <p>I am already try this configuration:</p>
  
  <pre><code>        &lt;behaviors&gt;
            &lt;endpointBehaviors&gt;
              &lt;behavior name="basicHttpBehavior"/&gt;
              &lt;behavior name="certWsBehavior"&gt;
                &lt;clientCredentials&gt;
                  &lt;clientCertificate findValue="Services" storeLocation="LocalMachine" x509FindType="FindBySubjectName" /&gt; 
                  &lt;serviceCertificate&gt;
                    &lt;defaultCertificate findValue="Services" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectName" /&gt;
                    &lt;authentication certificateValidationMode="PeerTrust" /&gt;
                  &lt;/serviceCertificate&gt;
                &lt;/clientCredentials&gt;
              &lt;/behavior&gt;
            &lt;/endpointBehaviors&gt;
          &lt;/behaviors&gt;
  
          &lt;services&gt;
            &lt;service name="Server.Service1"&gt;
              &lt;clear /&gt;
  
              &lt;endpoint address="" behaviorConfiguration="certWsBehavior" binding="wsHttpBinding"  contract="Server.IService1"&gt;
              &lt;/endpoint&gt;
  
              &lt;!--endpoint address="/basic" binding="basicHttpBinding" bindingConfiguration="BasicAnonBinding" contract="Server.IService1" /--&gt;
  
              &lt;host&gt;
                &lt;baseAddresses&gt;
                  &lt;add baseAddress="http://192.168.1.112:8732/PcrService" /&gt;
                  &lt;add baseAddress="https://192.168.1.112/PcrService" /&gt;
                &lt;/baseAddresses&gt;
              &lt;/host&gt;
            &lt;/service&gt;
          &lt;/services&gt;
  </code></pre>
  
  <p>many thanks,
  Riccardo</p>