WCF Nicht zu Deserialisieren. Warum ist mein parameter NULL?

Ich versuche zum einrichten einer web-service wird akzeptieren, dass vordefinierte eingehende SOAP - /XML-Nachrichten. Ich habe keine Kontrolle über den client-code oder der SOAP-Nachricht gesendet. Ich versuche ein einfaches Beispiel, und habe ein problem mit ihm. Lassen Sie uns sagen, dass dies der SOAP-Nachricht:

    <?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <CustomerRequest xmlns="http://tempuri.org">
      <Customer>
        <FirstName>John</FirstName>
        <LastName>Doe</LastName>
      </Customer>
    </CustomerRequest>
  </env:Body>
</env:Envelope>

Und mein Objekt mit Daten-Vertrag:

[DataContract(Name = "Customer", Namespace = "http://tempuri.org")]
public class Customer
{
    [DataMember]
    public string FirstName { get; set; }

    [DataMember]
    public string LastName { get; set; }
}

Service-Schnittstelle:

[ServiceContract(Namespace = "http://tempuri.org")]
public interface IService1
{
    [OperationContract(Action="*")]
    [WebInvoke(Method = "POST")]
    bool Customer(Customer customer);
}

Wenn ich senden über die SOAP-Anfrage kann ich alles in fiddler und es sieht in Ordnung zu sein. Aber wenn es Sie trifft mein code, das Customer-Objekt ist null. Ich fühle mich wie ich ' m fehlt etwas sehr einfach.

Hier ist auch die raw-Anfrage:

POST http://127.0.0.1.:3619/Service1.svc HTTP/1.1
SOAPAction: http://tempuri.org/IService1/Customer
Content-Type: text/xml;charset=utf-8
Host: 127.0.0.1.:3619
Content-Length: 339
Expect: 100-continue
Connection: Keep-Alive

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <CustomerRequest xmlns="http://tempuri.org">
      <Customer>
        <FirstName>John</FirstName>
        <LastName>Doe</LastName>
      </Customer>
    </CustomerRequest>
  </env:Body>
</env:Envelope>
  • Warum versuchen wir es nicht Umgekehrt? Einen WCF-Dienst erstellen, dass macht dieses Modell und schauen, welche Resonanz die es erzeugt. Dann die Feinabstimmung dieser Antwort, bis es übereinstimmt mit dem, was Sie erwarten.
  • Wie sind Sie definiert-Endpunkt? Ist der client schicken Sie alles in die HTTP-Header als auch (wie die SOAPAction header)?
  • Ich habe keine Kontrolle über die SEIFE, die eingehenden. Kann es sein das der Endpunkt. Ich bin nur mit der Standard-build-Endpunkt.
Schreibe einen Kommentar