WCF et Python
Est il un exemple de code d'un disponible (pas IronPython) d'un client peut appeler Windows Communication Foundation (WCF)?
- Pouvons-nous supposer que vous essayez d'appeler un SOAP ou REST service sur HTTP? Je doute à court d'une sorte de COM pont entre Python et un WCF client peut appeler avec succès un TCP service WCF.
Vous devez vous connecter pour publier un commentaire.
WCF doit exposer les fonctionnalités par le biais d'un protocole de communication. Je pense que le plus couramment utilisé protocole est probablement SOAP sur HTTP. Supposons que l'
ce que vous utilisez ensuite.
Prendre un coup d'oeil à ce chapitre de Plongée En Python. Il va vous montrer comment
faire des appels SOAP.
Je ne connais pas de méthode unifiée de l'appel d'un service WCF en Python, indépendamment de la communication
le protocole.
J'ai utilisé suds.
Qui devrait vous obtenir a commencé. Je suis en mesure de se connecter à des services exposés à partir de la WCF et une bonne couche. Il doit y avoir des données de massage pour aider à faire ce que vous avez besoin, surtout si vous avez besoin de se lier à plusieurs espaces de noms.
TL;DR: Pour wsHttpBinding (SOAP 1.2) utilisation zeep
Au cas où quelqu'un a de la difficulté à l'aide de la mousse (ou de mousse jurko d'ailleurs) avec WCF et wsHttpBinding (qui est SOAP 1.2):
Il fonctionne sur python 3, mais ne prend pas en charge SOAP 1.2. Sovetnikov réponse est une tentative de faire fonctionner avec la 1.2 mais je n'ai pas réussi à le faire fonctionner pour moi.
Pour zeep de travail, le service WCF la configuration de l'hôte doit inclure <mode de sécurité="None"/> en vertu de la wsHttpBinding nœuden Fait, zeep semble soutenir nom d'utilisateur et signature (x509) en fonction WS-SE mais je n'ai pas essayé et qui ne peut donc pas parler de tous les problèmes autour d'elle.client = zeep.Client('http://computerip:port/myservice/?wsdl')
. Comment créer un service WCF mise en œuvre est un peu hors de portée pour cette questionJuste pour aider une personne à accéder à la WCF SOAP 1.2 service avec WS-Addressing à l'aide de la mousse.
Principal problème consiste à injecter au nom de l'action dans chaque message.
Cet exemple pour python 3 et la mousse de port https://bitbucket.org/jurko/suds.
Exemple utilise personnalisé authentification basée sur les en-têtes HTTP, je laisse comme c'est.
TODO: obtenir Automatiquement api_direct_url à partir de WSDL (à maintenant, il est codé en dur).
Je ne sais pas du tout direct des exemples, mais si le service WCF est RESTE activé, vous pourriez avoir accès par l'entremise de la SHARKA (Plain Old XML) par le RESTE de méthodes/etc (si le service est tout). Si vous êtes dans le contrôle du service vous pouvez exposer les points de terminaison via le REPOS ainsi.
si vous avez besoin d'binaire sérialisé communication sur tcp puis envisager de mettre en œuvre des solutions comme l'Épargne.
Même si il n'est pas un exemple spécifique de l'appel de la WCF de Python, vous devriez être en mesure de faire un SAVON entièrement compatible avec service WCF. Ensuite, tout ce que vous avez à faire est de trouver quelques exemples de comment appeler un détergent normal de service à partir de Python.
La chose la plus simple sera d'utiliser le BasicHttpBinding dans WCF et puis vous pouvez soutenir vos propres sessions par le passage d'un jeton de session à chaque demande et la réponse.