2013-03-27 15 views
9

Sto provando a chiamare un servizio WCF. Ho creato un certificato autofirmato e installato nei miei certificati \ personnal \ personnalmachine, e l'ho aggiunto anche nella mia sezione. Ma non capisco perché questo errore è.Errore WCF Il certificato client non viene fornito. Specificare un certificato client in ClientCredentials

Ecco il mio web.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
     <bindings> 
      <wsHttpBinding> 
       <binding name="wsHttpEndpoint"> 
        <security mode="Transport"> 
         <transport clientCredentialType="Certificate" /> 
        </security> 
       </binding> 
      </wsHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="https://abcdxyz.abc.syntax.com/TestCCService.svc" 
       binding="wsHttpBinding" bindingConfiguration="wsHttpEndpoint" 
       contract="TestCCService.ITestCCService" name="wsHttpEndpoint" /> 
     </client> 

     <behaviors> 
      <endpointBehaviors> 
       <behavior name="CustomBehavior"> 
        <clientCredentials> 
         <clientCertificate findValue="abc.mymachine.name.com" x509FindType="FindBySubjectName" 
          storeLocation="LocalMachine" storeName="My" /> 
         </clientCredentials> 
       </behavior> 
      </endpointBehaviors> 
     </behaviors> 

    </system.serviceModel> 
</configuration> 

ma quando provo a chiamare il mio metodo di servizio propri errori lancio "Il certificato client non è fornito. Specificare un certificato client in ClientCredentials."

Apprezzo i tuoi suggerimenti per risolvere questo errore?

+0

WCF sostiene che non si ha certificato client che corrispondano a "abc.mymachine.name.com"; sei sicuro di averlo creato correttamente? –

+0

Sì, ho installato il certificato "abc.mymachine.name.com". – Steve

risposta

9

ho miised includere behaviorConfiguration = "CustomBehavior"

<endpoint address="https://abcdxyz.abc.syntax.com/TestCCService.svc" 
       binding="wsHttpBinding" bindingConfiguration="wsHttpEndpoint" 
       contract="TestCCService.ITestCCService" name="wsHttpEndpoint" **behaviorConfiguration="CustomBehavior"** /> 

e la sua ora di lavoro.

Grazie per l'aiuto