Suivi des demandes et réponses pour dépanner les applications de l’API managée EWSTrace requests and responses to troubleshoot EWS Managed API apps

Découvrez comment effectuer le suivi des demandes EWS et des réponses pour résoudre les erreurs dans votre application d’API managées.Find out how to trace EWS requests and responses to troubleshoot errors in your EWS Managed API application.

Débogage d’une application de service web peut être difficile, car la partie du traitement est effectuée sur un ordinateur distant qui vous n’avez pas accès à.Debugging a web service-based application can be difficult because part of the processing is performed on a remote computer that you might not have access to. Étant donné que vous ne pouvez pas parcourir le code sur le serveur, il peut être utile de voir les requêtes XML et les réponses qui sont envoyés entre le client et le serveur pour déterminer quelle partie de l’application qui provoque une erreur.Because you cannot step through the code on the server, it can be helpful to see the XML requests and responses that are sent between the client and the server to determine which part of the application is causing an error.

Si vous utilisez EWS, vous avez déjà accès à la demande XML et la réponse ; Vous pouvez placer un point d’arrêt dans votre code pour passer en revue la réponse du serveur à votre requête afin de résoudre un problème.If you are using EWS, you already have access to the XML request and response; you can put a break point in your code to review the server's response to your request in order to troubleshoot an issue. Si vous utilisez l’API managée EWS, vous n’avez pas accès direct à la demande EWS et la réponse.If you're using the EWS Managed API, you don't have direct access to the EWS request and response. Toutefois, vous pouvez utiliser les méthodes de suivi sur l’objet ExchangeService pour capturer la requête XML et la réponse, et vous pouvez ensuite utiliser le code XML pour déterminer pourquoi votre code ne fonctionne pas.However, you can use tracing methods on the ExchangeService object to capture the XML request and response, and you can then use the XML to determine why your code is not working.

Par exemple, si vous n’avez pas défini une propriété correctement, vous risquez d’obtenir une réponse inattendue et vous pouvez utiliser la sortie de trace pour examiner la requête XML et la réponse pour identifier l’erreur.For example, if you did not set a property correctly, you might get an unexpected response, and you can use the trace output to look at the XML request and response to identify the error. La sortie de suivi de l’API managée EWS peut également vous aider à créer manuellement la demande XML pour créer votre application EWS.The trace output from the EWS Managed API can also help you manually build the XML request to create your EWS application. Si vous utilisez EWS, vous pouvez créer une petite application à l’aide des API managées remonter et puis utiliser les informations de la demande XML pour vous aider à créer votre demande EWS.If you are using EWS, you can create a small application by using EWS Managed API, trace it, and then use the XML request information to help you build your EWS request.

Activer le suivi de l’objet ExchangeServiceEnabling tracing on the ExchangeService object

Pour activer le suivi, créez un objet ExchangeService pour votre application et définir les propriétés de suivi comme indiqué dans l’exemple suivant.To enable tracing, create an ExchangeService object for your application, and set the tracing properties as shown in the following example.

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.TraceListener = ITraceListenerInstance;
// Optional flags to indicate the requests and responses to trace.
service.TraceFlags = TraceFlags.EwsRequest | TraceFlags.EwsResponse
service.TraceEnabled = true;

Une fois que vous définissez la propriété TraceEnabled sur true, toutes les demandes qui correspondent aux indicateurs de suivi seront envoyés à l’écouteur de trace spécifiée.After you set the TraceEnabled property to true, all requests that match the trace flags will be sent to the specified trace listener. Vous pouvez spécifier un indicateur de trace unique, ou vous pouvez spécifier plusieurs indicateurs de trace combinant avec un opérateur logique OR.You can specify a single trace flag, or you can specify multiple trace flags by combining them with a logical OR. Vous pouvez utiliser l' énumération TraceFlags pour spécifier des valeurs pour EWS et pour les réponses et les demandes de découverte automatique.You can use the TraceFlags enumeration to specify values for EWS and for Autodiscover requests and responses.

Implémentation d’un objet TraceListenerImplementing a TraceListener object

Vous pouvez définir la propriété TraceEnabled sur true pour sortir les requêtes XML et les réponses à votre application, par exemple une fenêtre de console.You can set the TraceEnabled property to true to output the XML requests and responses to your application, such as a console window. Si vous souhaitez contrôler la sortie de trace et enregistrez-le dans un fichier, il est recommandé d’implémenter un objet de classe TraceListener .If you want to control the trace output and save it to a file, we recommend that you implement a TraceListener class object. L’exemple de code suivant montre un objet simple qui implémente l’interface ITraceListener et stocke les demandes de suivi et les réponses dans des fichiers texte ou XML.The following code example shows a simple object that implements the ITraceListener interface and stores the traced requests and responses in XML or text files.

class TraceListener : ITraceListener
{
    #region ITraceListener Members
    public void Trace(string traceType, string traceMessage)
    {
      CreateXMLTextFile(traceType, traceMessage.ToString());
    }
    #endregion
    private void CreateXMLTextFile(string fileName, string traceContent)
    {
      // Create a new XML file for the trace information.
      try
      {
        // If the trace data is valid XML, create an XmlDocument object and save.
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(traceContent);
        xmlDoc.Save(fileName + ".xml");
      }
      catch
      {
        // If the trace data is not valid XML, save it as a text document.
        System.IO.File.WriteAllText(fileName + ".txt", traceContent);
      }
    }
}

Voir aussiSee also