J'essaye d'écrire une application C# pour recevoir des notifications d'eBay qui sont envoyées comme SOAP sur HTTP. Je reçois les notifications correctement mais je ne peux pas les faire passer à mon service WCF. Que dois-je faire sur la configuration du service WCF pour permettre à la demande SOAP entrante d'être reconnue? J'utilise un webHttpBinding avec le service WCF.Obtenir WCF pour reconnaître la requête SOAP entrante
La requête SOAP est:
POST /paypal/ebaynotification.svc HTTP/1.0
Host: myserver.com
Content-Type: text/xml;charset=utf-8
SOAPAction: "http://developer.ebay.com/notification/ItemListed"
Content-Length: 6610
X-Original-Client: 10.71.29.83
Via: 1.0 sjcproxy10b:8081 (squid)
Cache-Control: max-age=86400
Connection: keep-alive
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<ebl:RequesterCredentials soapenv:mustUnderstand="0" xmlns:ns="urn:ebay:apis:eBLBaseComponents" xmlns:ebl="urn:ebay:apis:eBLBaseComponents">
<ebl:NotificationSignature xmlns:ebl="urn:ebay:apis:eBLBaseComponents">RnvpyFAXc9Duo0W+/Mk68g==</ebl:NotificationSignature>
</ebl:RequesterCredentials>
</soapenv:Header>
<soapenv:Body>
....
</soapenv:Body>
</soapenv:Envelope>
Mon interface de service WCF est:
[ServiceContract(Namespace="http://developer.ebay.com/notification")]
public interface Iebaynotification
{
[OperationContract]
void ItemListed(ItemType item);
}
La liaison BasicHttp ou Custom avec le transport HTTP et l'encodage des messages texte avec la version de message définie sur SOAP 1.1 est nécessaire. Cela ne fonctionnera pas avec WSHttpBinding. –