J'ai rencontré un problème lors de l'appel du service Web sur un bus SAP PI à partir de mon client WCF. L'opération est définie comme unidirectionnelle et la méthode de mon contrat d'opération proxy est décorée en conséquence lorsque la référence de service est ajoutée. Cependant, le client de service reçoit une exception lors de l'appel de l'opération selon:Problème avec l'appel unidirectionnel du client WCF
L'opération à sens unique retourné un message non nul avec Action = « »
En utilisant SoapUI, la méthode sur la Le bus peut être appelé avec succès et renvoie une enveloppe SOAP avec un corps vide. Les gens de bus m'a dit, c'est selon les spécifications SOAP:
(spécifications SOAP, chapitre 4.7.9, les opérations à sens unique):
Il y a différentes interprétations de la façon dont HTTP est d'être utilisé lors d'opérations à sens unique.
R2714 Pour les opérations à sens unique, une INSTANCE NE DOIT PAS retourner une réponse HTTP qui contient une enveloppe. Plus précisément, le corps d'entité de réponse HTTP doit être vide.
R2750 UN CONSOMMATEUR DOIT ignorer une enveloppe transportée dans un message de réponse HTTP dans une opération unidirectionnelle. Pour les opérations unidirectionnelles, un CONSOMMATEUR NE DOIT PAS interpréter un code d'état de réponse HTTP réussi (c'est-à-dire, 2xx) pour signifier que le message est valide ou que le destinataire le traiterait.
Il semble donc que mon client WCF ne soit pas conforme à R2750.
J'ai découvert que lorsque je force le contrat d'opération sur le proxy à être IsOneWay = false, tout fonctionne.
Y at-il quelque chose qui ne va pas dans la façon dont WCF gère les opérations à sens unique ou est-ce que je fais quelque chose de mal (plus probable)? Y at-il autre chose que je devrais faire, il ne semble pas juste de remplacer le client proxy WCF généré.
Merci pour vos suggestions.
Bonne question +1. Je dirais que leur camp n'est pas conforme à R2714 non plus. S'il vous plaît envisager de déposer un incident avec Microsoft et nous faire savoir quel est le résultat. –
Question similaire (et plus d'infos): http://stackoverflow.com/q/4510484/46039 –
Lien vers la spécification SOAP 4.7.9 Opérations à sens unique: http://www.ws-i.org/profiles/basicprofile -1.1.html –