Comment connecter un programme C ++ à un service WCF?

À la place où je travaille, il existe des logiciels écrits en C # et d’autres en C ++ (les plus importants). Il y a quelque temps, nous avons décidé qu’il serait judicieux de suivre tout problème éventuel du logiciel en envoyant des informations de trace de stack et d’exception via un service Web. Je suis donc arrivé avec un service WCF, qui récupère les informations, les stocke dans une firebase database et envoie un e-mail automatique. Cela a fonctionné, nous avons dû le sécuriser par mot de passe, c’est fait, mais je souhaite maintenant que notre autre logiciel, celui écrit en C ++, utilise ce service Web (ce logiciel est utilisé à la fois sous Windows et sous Linux; un appel à un autre logiciel de la machine utilisateur).

J’ai cherché sur Google , et j’ai trouvé ce tutoriel sur l’utilisation de gSOAP , qui jusqu’à présent ne m’a pas beaucoup aidé (beaucoup d’erreurs, il n’est pas très détaillé et le fichier web.config est impossible à lire). Je me demandais s’il y avait un autre moyen d’y parvenir. De plus, depuis que j’utilise l’authentification sur mon webservice, il a maintenant un wsHttpBinding (AFAIK n’est pas supporté par gSOAP ).

Pouvez-vous m’aider?

Étant donné que votre service WCF est en C # avec .NET et que le seul problème est de permettre à l’application C ++ de pouvoir lui parler, vous pouvez suivre les conseils donnés dans les points de terminaison REST / SOAP pour un service WCF et les articles associés.

Vos programmes C # continuent d’avoir un access SOAP complet à votre service. Vos programmes C ++ pourraient faire quelque chose comme ceci pour l’access REST:

  • “Naviguez” vers l’URL HTTP GET de la commande de service souhaitée.
  • Puis lancez (ou parsingz et utilisez) quelle que soit la réponse reçue.

Le fait de proposer à la fois SOAP et REST est un changement minime dans votre service WCF. La capacité REST ouvre votre service à JavaScript ainsi qu’aux clients C ++.

Vous devrez peut-être limiter l’interface à des données simples ou à des objects de classe faciles à parsingr en C ++.

Le .NET Framework sera-t-il installé sur les machines exécutant les applications C ++?

Check out: Créer un service WCF pour les clients C ++ non gérés