2009-04-28 10 views
12

Je suis figthing depuis des heures maintenant pour comprendre ce problème.WCF + SSL aucun point de terminaison trouvé

J'ai un service wcf que j'héberge sur II7, tout fonctionne bien quand j'utilise le protocole http normal.

J'ai ajouté des capacités SSL et depuis je ne peux plus y accéder à partir du code. Je peux créer un client mais ne peux exécuter aucune de ses méthodes.

voici ce que j'ai

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
      <binding name="WSHttp0"> 
       <security mode="Transport"> 
        <transport realm ="" clientCredentialType="None" /> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://serverName.domname.local/WCFTest/MyWebServicec.svc" 
      binding="wsHttpBinding" bindingConfiguration="WSHttp0" contract="SSLWebService.IMyWebService" 
      name="WSEP"> 
      <identity> 
       <dns value="serverName.domname.local" /> 
      </identity> 
     </endpoint> 
    </client> 
</system.serviceModel> 

J'ai ajouté une référence de service à mon projet

et je l'utilise comme ça

Dim client As MyWebServiceClient = New MyWebServiceClient() 
Try 
    client.GetDocumentByDocID(5) 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
End Try 

et voici ce que je reçois

Il n'y avait pas de point d'écoute à https://serverName.domname.local/WCFTest/MyWebService.svc qui pourrait accepter le message. Ceci est souvent causé par une adresse incorrecte ou une action SOAP. Voir InnerException, si présent, pour plus de détails.

Quelqu'un peut-il m'aider à ce sujet? Je ne comprends vraiment pas ce qui se passe ...

Note: Je peux accéder au webservice correctement à l'aide d'Internet Explorer (donc je suppose que mon certificat est ok)

+0

il peut être utile de voir la configuration du serveur –

Répondre

3

Vous aviez raison à ce sujet,

Sg incorrect sur le côté serveur.

voici comment je l'ai fait travailler

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
      <binding name="wsHttpEndpointBinding"> 
       <security mode="Transport"> 
        <transport clientCredentialType ="None"/> 
       </security> 
      </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="App_WcfWebService.AppWebServiceBehavior" name="App_WcfWebService.AppWebService"> 
      <endpoint address="" binding="wsHttpBinding" bindingConfiguration ="wsHttpEndpointBinding" contract="App_WcfWebService.IAppWebService"> 

      </endpoint> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="App_WcfWebService.AppWebServiceBehavior"> 
       <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
       <serviceMetadata httpsGetEnabled="true"/> 
       <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
       <serviceDebug includeExceptionDetailInFaults="true"/> 
       <serviceThrottling maxConcurrentSessions="90" />      
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 
4

Je pense que le web.config du serveur peut être défectueux ici. J'ai WCF sur SSL fonctionne avec le app.config suivant sur le côté client. La seule différence visible est ClientCredentialType que j'ai définie à Windows car je veux utiliser l'authentification intégrée de Windows. Le serveur web.config inclut les lignes suivantes pour configurer le service que le client peut consommer. Pourriez-vous comparer ceci à votre web.config sur le serveur et voir ce qui diffère? Ou ajoutez votre web.config à la question.

Questions connexes