appelant un service Web en utilisant WCF sur Http et Https
Dans notre projet, nous avons un service web java qui s'exécute sur http et https.
Nous voulons utiliser le protocole http à l'interne et https pour la version externe de notre application web.
Nous avons donc créé la classe de proxy dans notre application, et nous avons mis en place la liaison pour http dans le web/app.config et tout fonctionne très bien.
Quels changements devons-nous faire pour le code et la configuration à l'appui de https pour le même service dans notre application externe? Si possible, veuillez fournir des extraits de code pour expliquer!
source d'informationauteur Lewis
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une réponse à creuser autour de MSDN.
Dans mon cas, j'ai été en utilisant une liaison personnalisée:
Qui a été référencé dans le service
L'ajout d'une seconde liaison utilisé httpsTransport puis un second service de cette liaison a fait le tour. Résultat Final:
Peut-être pas idéal, mais ça fonctionne. Ce sont les seules modifications que j'ai apportées pour rendre SSL travail. Puisque c'est dans la liaison & le transport, le code reste le même.
Pertinentes MSDN liens:
Je suis en supposant que vous utilisez basichttpbinding. Ensuite, vous devez faire deux choses:
Je comprends que vous êtes en utilisant WCF pour créer le client, qui se connecte à un service web à distance, via le protocole HTTPS.
Pour ce faire, il suffit de modifier le côté client, le fichier de config pour le fonds de roulement alimenté à l'application, en remplacement de http://server.address avec https://server.addressdans configuration/system.serviceModel/client/endpoint/@address . comme:
(Le chemin d'accès au fichier de configuration varie en fonction de l'ordinaire .NET règles: si c'est une école du RÉSEAU, application, ou d'un service, etc.)
OU vous pouvez définir l'adresse explicitement dans le code:
Je vous conseille fortement de faire l'adresse configurable, et de ne pas coder en dur. Cela ne signifie pas qu'il doit être stocké dans l'app.config, mais il devrait être variable. Le proxy, trop.
Veuillez voir Configuration de HTTP et de HTTPS:
Et aussi voir WCF les Liaisons Nécessaires Pour HTTPS: