2010-04-12 2 views
3

J'ai un site Web ASP.NET qui contacte un service Web. Tout fonctionne bien se connecter via http mais quand j'essaye https: // il ne peut pas se connecter. Je ne reçois aucune erreur du site Web et les journaux du service Web ne montrent rien, ce qui signifie que rien ne s'y connecte.Connexion à https: // webservice dans l'application asp.net

Je peux me connecter à mon https: // webservice à partir d'un site comme soapclient.com et demander des informations, de sorte que le webservice et les ports fonctionnent.

Y at-il quelque chose de spécial que je devrais faire afin de me connecter à un webservice https: // sur un http: // normal dans .NET? Tout ce que je fais en ce moment, c'est changer l'URL à laquelle je me connecte à ma sécurité.

J'utilise ASP.NET 2, IIS7

Merci à l'avance.

EDIT: Juste trouvé le message d'erreur réel: La connexion sous-jacente était fermée: Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS - Qui à mes yeux me dit que je n'ai pas ajouté mon certificat auto signé certs sur le serveur ... mais j'ai ...

Répondre

1

Vous devez ajouter votre certificat auto-signé en vertu des autorités de certification racine de confiance dans le magasin Ordinateur local du serveur exécutant le site Web ASP.NET.

Exportez le certificat du serveur de service Web en tant que fichier .cer et copiez-le sur le serveur exécutant le site Web ASP.NET. Ensuite, sur ce serveur:

  1. Double-cliquez sur le fichier .cer et Installer le certificat
  2. Dans l'assistant, choisissez le magasin comme le dossier de l'ordinateur local sous Autorités de certification racine de confiance.
  3. Vous pourriez avoir à redémarrer IIS ou le serveur

Il y a quelques bonnes instructions vers le bas de cette page, sous la rubrique « Installation du certificat auto-signé sur les ordinateurs clients »: http://webhelp.esri.com/arcgisserver/9.3/dotNET/index.htm#setting_up_ssl.htm

+0

Merci. Cela semblait régler le problème. J'ai installé le certificat via IE en cliquant dessus et en choisissant install, j'ai même choisi l'emplacement que vous avez mentionné car je sais qu'il devrait être là mais pour une raison quelconque il ne l'a pas installé. Est-ce que .NET est quelque part différent de l'endroit IE fait parce que je pourrais voir le service Web sans problèmes dans IE? – webnoob

+0

IE et .NET utilisent tous deux les magasins de certificats Windows. Pas sûr ... peut-être que ça a marché et que vous aviez juste besoin de redémarrer? –

+0

J'ai fait le redémarrage avant d'ajouter le CERT. Je suppose que c'est juste une de ces choses bizarres ... Merci encore pour l'aide. – webnoob

0

Il semble que votre client rencontre une erreur de validation de certificat, car votre certificat de serveur est auto-signé. Essayez d'inclure la ligne suivante (C#) dans votre code de site Web avant d'appeler le service Web. Ceci va dire .NET d'ignorer toutes les erreurs de validation du certificat:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }; 

Cela devrait évidemment pas être utilisé dans un environnement de production :)