2015-03-13 2 views
0

Tous,passer des données de contexte supplémentaires en dehors de message dans WCF

Nous avons un inspecteur de message qui enregistre les messages soap entrants et sortants à un db personnalisé, aller de l'avant, nous devons corelate la demande et la réponse en fonction d'un guid/some id qui est NOT présent dans la demande ni le message de réponse.

est-il un moyen que nous pouvons transmettre des informations supplémentaires à l'inspecteur des messages dire quelques propriétés de contexte en dehors de la messqge

Répondre

0

inspecteur du message a correlationState que vous pouvez utiliser pour établir une corrélation entre Recieve/Envoyer. Renvoyer le jeton de corrélation de AfterRecieveRequest dans les services et le consommer dans BeforeSendReply. Sur le client, AfterReceiveReply renvoie le jeton de corrélation.

public interface IDispatchMessageInspector 
{ 
    object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext); 
    void BeforeSendReply(ref Message reply, object correlationState); 
} 

public interface IClientMessageInspector 
{ 
    void AfterReceiveReply(ref Message reply, object correlationState); 
    object BeforeSendRequest(ref Message request, IClientChannel channel); 
}