etwas scheint mir sehr seltsam, ich habe mit Reflektor innen WCF zu sehen versucht, aber verzeihen Sie mir es zu schwer ist. Zu verstehen :(Wie WsDualHttpBinding über den Callback-Kanal informiert?
Wenn ein Client eine Duplex-Dienst auf Server B mit wsDualHttpBinding nennen, dachte ich, dass Client A umfassen die Client-Basisadresse (die Adresse des Callback) im Header der Anforderung wie diese
<a:ReplyTo>http://client.foo/29293-3287-2387-3291</a:ReplyTo>
.
Aber OperationContext.Current.IncomingMessageHeaders.ReplyTo
kehrt null ...
Wie wsDualHttpBinding tut, um die Adresse des Client-Kanals zu kennen ???
Gibt es etwas schwarze Magie oder etwas?
Lösung
Dies ist die zuverlässige Sitzung, die die replyTo Adresse für den Transport verantwortlich ist. Wir können dies überprüfen, mit diesen Bindungselementen in einem custom
<reliableSession/>
<compositeDuplex/>
<oneWay></oneWay>
<textMessageEncoding></textMessageEncoding>
<httpTransport/>
Entfernen Sie die reliableSession und Ihr Dienst hat nicht den Rückruf Kanal mehr ...
Fiddler zeigt nicht den Verkehr zwischen zwei Endpunkten auf dem gleichen Computer haben Sie eine andere Lösung? –
Nachrichtenprotokollierung? http://msdn.microsoft.com/en-us/library/aa702726.aspx http://blogs.msdn.com/madhuponduru/archive/2006/05/18/601458.aspx – Brian
Setzen Sie einen Punkt (.) in der URL: http://localhost./MyService/Service.svc und Fiddler wird es abholen. –