quelque chose semble très étrange pour moi, je l'ai essayé de regarder à l'intérieur WCF avec réflecteur, mais pardonnez-moi, il est trop difficile à comprendre :(.Comment WsDualHttpBinding fait pour connaître le canal de rappel?
Lorsque le client A appeler un service duplex sur le serveur B avec wsDualHttpBinding, je pense que client A comprennent l'adresse de base du client (l'adresse du rappel) dans l'en-tête de la demande comme celui-ci
<a:ReplyTo>http://client.foo/29293-3287-2387-3291</a:ReplyTo>
.
Mais OperationContext.Current.IncomingMessageHeaders.ReplyTo
nULL retourne ...
Comment wsDualHttpBinding fait pour connaître l'adresse du canal client ????
Y at-il de la magie noire ou quelque chose?
Solution
Ceci est la session fiable qui est responsable pour le transport de l'adresse replyTo. Nous pouvons vérifier avec ces éléments de fixation dans un CustomBinding
<reliableSession/>
<compositeDuplex/>
<oneWay></oneWay>
<textMessageEncoding></textMessageEncoding>
<httpTransport/>
Retirez le reliableSession et votre service pas plus le canal de rappel ...
Fiddler ne montre pas le trafic entre deux points de terminaison sur la même machine avez-vous une autre solution? –
Enregistrement de messages? http://msdn.microsoft.com/en-us/library/aa702726.aspx http://blogs.msdn.com/madhuponduru/archive/2006/05/18/601458.aspx – Brian
Mettez un point (.) dans l'URL: http://localhost./MyService/Service.svc et fiddler le ramassera. –