2010-12-14 68 views
2

J'ai implémenté un test client/serveur qui implémente l'authentification de message UserName sur WCF. Il presque tous les travaux mais je suis tombé au dernier obstacle.Le certificat de service n'est pas fourni pour la cible '###' Spécifiez un certificat de service dans ClientCredentials

je reçois un InvalidOperationException qui lit

The service certificate is not provided for target 'http://localhost:8732/Design_Time_Addresses/EvalServiceLibrary/Service1/'. Specify a service certificate in ClientCredentials.

Quelqu'un peut-il nous éclairer?

Merci

Répondre

1

Sons comme votre exigeant un certificat de sécurité et de votre code client ne fournit pas le certificat sur demande. WCF Security

0

Votre client doit pouvoir authentifier le service par référence à un certificat X509, la clé publique qu'il utilisera pour chiffrer les messages envoyés au service.

Le certificat de service est identifié du côté client par la propriété ServiceCertificate de ClientCredentials. Le message d'erreur vous indique que votre configuration/code ne l'a pas configuré correctement. Si vous postez votre code/config, nous serons peut-être en mesure de vous dire ce qui ne va pas.

2

Inclure quelque chose comme ceci dans votre fichier de configuration client:

<client> 
<endpoint address="http://example.com/Myservice.svc" 
     binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService" 
     contract="Core.IService" name="WSHttpBinding_IService" behaviorConfiguration="myServiceBehaviour" > 
    <identity> 
    <dns value="SampleServiceCertificate"/> 
    </identity> 
</endpoint> 
</client> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="myServiceBehaviour"> 
      <clientCredentials> 
      <serviceCertificate> 
       <defaultCertificate storeLocation="LocalMachine" storeName="My" findValue="SampleServiceCertificate" x509FindType="FindBySubjectName" /> 
      </serviceCertificate> 
      </clientCredentials> 
     </behavior>    
     </endpointBehaviors>   
    </behaviors> 
+0

Votre réponse ne fonctionne pas. J'obtiens maintenant l'erreur: Impossible de trouver le certificat X.509 en utilisant les critères de recherche suivants: StoreName 'My', StoreLocation 'LocalMachine', FindType 'FindBySubjectName', FindValue 'SampleServiceCertificate'. –

+0

@ MichaelS.Miller - StoreName 'My' et FindValue 'SampleServiceCertificate' ne sont que des exemples que j'ai donnés, vous devez modifier ces valeurs pour correspondre à votre certificat installé. – BornToCode

+0

J'utilisais mon certificat. Cependant, il s'avère que quelqu'un a mal orthographié le nom du certificat dans l'email quand je leur ai demandé le nom du certificat, et je l'ai juste copié/collé dans le code sans le regarder. Une fois que j'ai réalisé que le "Service" n'était pas orthographié "Servcie" ça a bien marché. –