2009-10-05 8 views
4

J'ai un auto-hébergé (Console App) service REST WCF avec la liaison suivante:WCF HTTPS service d'auto-hébergé ne fonctionne pas ("connexion au serveur a été remis à zéro")

  • WebMessageEncodingBindingElement
  • HttpsTransportBindingElement (ManualAddressing = true, KeepAliveEnabled = true, AllowCookies = false, HostNameComparisonMode = exact)

Ceci est exposé sur une URL HTTPS ("https://mylaptop/myendpoint")

J'ai un certificat auto-signé émis pour "mylaptop" que j'affecte en utilisant myServiceHost.Credentials.ServiceCertificate.SetCertificate. Le certificat est ajouté avec succès et ServiceHost s'ouvre avec succès (aucune exception). Si je tape "netsh http show servicestate", je peux voir qu'il y a un enregistrement réussi à https://mylaptop/myendpoint avec HTTP.SYS

Cependant, quand j'émets un GET au point de terminaison, cela ne fonctionne pas. Il semble que le socket est supprimé avant même qu'une réponse HTTP valide ne soit obtenue. (FireFox dit "la connexion au serveur a été réinitialisée", IE dit "ne peut pas afficher la page Web", et si je fais la demande via Fiddler, il est dit "la connexion a été fermée de force par l'hôte distant").

Tout fonctionne correctement lorsque j'utilise HTTP au lieu de HTTPS.

Une idée de ce qui pourrait mal se passer dans le boîtier HTTPS?

Répondre

6

Vous devez probablement utiliser httpcfg.exe pour réserver votre point de terminaison avec HTTP.SYS correctement avec un certificat X.509 configuré pour SSL. Les étapes pour y arriver sont documentées here.

+0

Le réglage du certificat ne fonctionne donc pas? – user1034912

5

Ou utilisez HttpCfgGui - une interface beaucoup plus conviviale pour configurer les certificats de serveur avec HTTP.SYS. C'est un must-installer sur tous mes serveurs qui font HTTP avec WCF.

Questions connexes