J'appelle ce service Web dans le code et j'aimerais voir le code XML, mais je ne peux pas trouver une propriété qui l'expose.
Réponses
Trop de publicités?Je pense que vous vouliez dire que vous voulez voir le XML sur le client, pas de trace sur le serveur. Dans ce cas, votre réponse est dans la question j'ai lié ci-dessus, et aussi à Comment vérifier ou Modifier des Messages sur le Client. Mais, depuis le .NET 4 version de cet article est manquant à ses C#, et la .NET 3.5 exemple a une certaine confusion (si ce n'est un bug) en elle, ici, il est élargi pour votre but.
Vous pouvez intercepter le message avant qu'il ne passe à l'aide d'un IClientMessageInspector:
using System.ServiceModel.Dispatcher;
public class MyMessageInspector : IClientMessageInspector
{ }
Les méthodes de cette interface, BeforeSendRequest
et AfterReceiveReply
, de vous donner accès à la demande et de la réponse. Utilisation de l'inspecteur, vous devez l'ajouter à un IEndpointBehavior:
using System.ServiceModel.Description;
public class InspectorBehavior : IEndpointBehavior
{
public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
clientRuntime.MessageInspectors.Add(new MyMessageInspector());
}
}
Vous pouvez laisser les autres méthodes de cette interface implémentations vides, sauf si vous souhaitez utiliser cette fonctionnalité, trop. Lire le how-to pour plus de détails.
Après l'instanciation du client, ajouter le comportement à l'extrémité. À l'aide de noms par défaut à partir de l'exemple de la WCF projet:
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
client.Endpoint.Behaviors.Add(new InspectorBehavior());
client.GetData(123);
Définissez un point d'arrêt en MyMessageInspector.BeforeSendRequest()
; request.ToString()
est surchargée pour afficher le XML.
Si vous allez à manipuler les messages à tous, vous avez à travailler sur une copie du message. Voir l'Aide de la Classe de Message pour plus de détails.
Grâce à Zach Bonham, en réponse à une autre question pour trouver ces liens.
Option 1
Utiliser le suivi des messages de journalisation.
Option 2
Vous pouvez toujours utiliser Fiddler pour voir les requêtes HTTP et de la réponse.
Option 3
Utilisation System.Net traçage.