Etwas scheint sehr seltsam zu mir, ich habe versucht, in WCF mit Reflector zu schauen, aber verzeihen Sie mir, es ist zu schwer zu verstehen :(.
Wenn Client A einen Duplex-Dienst auf Server B mit wsDualHttpBinding aufrufen, dachte ich, dass Client A die Client-Basis-Adresse (die Adresse des Rückrufs) in der Kopfzeile der Anforderung wie folgt enthalten
<a:ReplyTo>http://client.foo/29293-3287-2387-3291</a:ReplyTo>
.
Aber OperationContext.Current.IncomingMessageHeaders.ReplyTo
gibt null zurück...
Wie wsDualHttpBinding tut, um die Adresse des Client-Kanals ???? kennen
Gibt es eine schwarze Magie oder so etwas?
Lösung
Dies ist die zuverlässige Sitzung, die für den Transport der replyTo-Adresse verantwortlich ist. Wir können dies mit diesen Bindungselementen in einer customBinding überprüfen
<reliableSession/>
<compositeDuplex/>
<oneWay></oneWay>
<textMessageEncoding></textMessageEncoding>
<httpTransport/>
Entfernen Sie die reliableSession und Ihr Dienst hat nicht mehr den Rückrufkanal...