Inspectez Je suis en train de mettre en œuvre un inspecteur message simple qui écrit le message à la fenêtre de débogage à partir d'un exemple on MSDN:WCF Messages
public class MyMessageInspector : IDispatchMessageInspector
{
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
System.Diagnostics.Debug.WriteLine(request.ToString());
return null;
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
System.Diagnostics.Debug.WriteLine(reply.ToString());
}
}
La réponse est en train d'écrire comme prévu. Cependant, la requête semble être nulle. Des idées sur ce qui pourrait aller mal? J'utilise un proxy de référence de service avec une application de console en tant que client. J'utilise basicHttpbinding et l'hébergement avec IIS avec le fichier svc. Le paramètre de ma méthode Web est un type complexe. Je ne suis pas sûr que cela fasse une différence.
Merci pour l'info. J'ai essayé de créer un tampon mais je ne travaille toujours pas. Je vais essayer l'exemple dans votre lien aussi. – Quadwwchs
Le tampon de demande n'est pas nécessaire pour 'request.ToString()'. –
L'état des liens MSDN en ce qui concerne "Extraction des données du corps du message": Vous pouvez accéder au corps d'un message qu'une seule fois, indépendamment de la façon dont il est accédé. Un objet de message a une propriété State, qui est initialement définie sur Created. Les trois méthodes d'accès décrites dans la liste précédente définissent l'état sur Écrit, Lecture et Copié, respectivement. En outre, une méthode Close peut définir l'état sur Fermé lorsque le contenu du corps du message n'est plus requis. Le corps du message est accessible uniquement dans l'état Créé et il n'existe aucun moyen de revenir à l'état Créé après la modification de l'état. – Junto