Limitations du débogage WCFLimitations on WCF Debugging

Il existe trois façons de commencer à déboguer un service WCF :There are three ways that you can begin debugging a WCF service:

  • Vous déboguez un processus client qui appelle un service.You are debugging a client process that calls a service. Le débogueur effectue un pas à pas détaillé dans le service.The debugger steps into the service. Le service n'a pas besoin d'être dans la même solution que votre application cliente.The service does not have to be in the same solution as your client application.

  • Vous déboguez un processus client qui fait une demande à un service.You are debugging a client process that makes a request to a service. Le service doit faire partie de votre solution.The service must be part of your solution.

  • Vous utilisez attacher au processus à attacher à un service qui est en cours d’exécution.You use Attach to Process to attach to a service that is currently running. Le débogage commence à l'intérieur du service.Debugging begins inside the service.

    Cette rubrique décrit les limitations relatives à ces scénarios.This topic describes limitations on these scenarios.

Limitations relatives au pas à pas détaillé dans un serviceLimitations on Stepping Into a Service

Pour effectuer un pas à pas détaillé dans un service à partir d'une application cliente que vous déboguez, les conditions suivantes doivent être satisfaites :To step into a service from a client applications that you are debugging, the following conditions must be met:

  • Le client doit appeler le service à l'aide d'un objet client synchrone.The client must call the service by using a synchronous client object.

  • L'opération de contrat ne peut pas être unidirectionnelle.The contract operation cannot be one-way.

  • Si le serveur est asynchrone, vous ne pouvez pas afficher la pile des appels complète pendant que vous exécutez le code à l'intérieur du service.If the server is asynchronous, you cannot view the full call stack while you are executing code inside the service.

  • Le débogage doit être activé avec le code suivant dans le fichier app.config ou Web.config :Debugging must be enabled with the following code in the app.config or Web.config file:

    <system.web>  
      <compilation debug="true" />  
    </system.web>  
    

    Ce code ne doit être ajouté qu'une seule fois.This code only has to be added one time. Vous pouvez ajouter ce code en modifiant le fichier .config ou en attachant au service à l’aide de attacher au processus.You can add this code by editing the .config file or by attaching to the service by using Attach to Process. Lorsque vous utilisez attacher au processus sur un service, le code de débogage est automatiquement ajouté au fichier .config.When you use Attach to Process on a service, the debug code is automatically added to the .config file. Après quoi vous pouvez effectuer un débogage et un pas à pas détaillé dans le service sans avoir à modifier le fichier .config.After that, you can debug and step into the service without having to edit the .config file.

Limitations relatives au pas à pas sortant d'un serviceLimitations on Stepping Out of a Service

Un pas à pas sortant d'un service et un retour au client a les mêmes limitations que celles décrites pour un pas à pas détaillé dans un service.Stepping out of a service and back to the client has the same limitations described for stepping into a service. De plus, le débogueur doit être attaché au client.In addition, the debugger must be attached to the client. Si vous déboguez un client et effectuez un pas à pas dans un service, le débogueur reste attaché au service.If you are debugging a client and step into a service, the debugger remains attached to the service. Cela est vrai si vous avez démarré le client à l’aide de démarrer le débogage ou attaché au client à l’aide de attacher au processus.This is true whether you started the client by using Start Debugging or attached to the client by using Attach to Process. Si vous avez commencé le débogage par un attachement au service, le débogueur n'est pas encore attaché au client.If you began debugging by attaching to the service, the debugger is not yet attached to the client. Dans ce cas, si vous avez à l’étape en provenance du service et au client, vous devez tout d’abord utiliser attacher au processus pour effectuer l’attachement au client manuellement.In that case, if you have to step out of the service and back to the client, you must first use Attach to Process to attach to the client manually.

Limitations relatives à l'attachement automatique à un serviceLimitations on Automatic Attach to a Service

L'attachement automatique à un service a les limitations suivantes :Automatically attaching to a service has the following limitations:

  • Le service doit faire partie de la solution Visual StudioVisual Studio que vous déboguez.The service must be part of the Visual StudioVisual Studio solution you are debugging.

  • Le service doit être hébergé.The service must be hosted. Il peut faire partie d’un projet de Site Web (système de fichiers et HTTP), le projet d’Application Web (système de fichiers et HTTP) ou le projet bibliothèque du Service WCF.It may be part of a Web Site project (File System and HTTP), Web Application project (File System and HTTP), or WCF Service Library project. Les projets Bibliothèque du service WCF peuvent être des bibliothèques du service ou des bibliothèques du service de workflow.WCF Service Library projects can be either Service Libraries or Workflow Service Libraries.

  • Le service doit être appelé à partir d'un client WCF.The service must be invoked from a WCF client.

  • Le débogage doit être activé avec le code suivant dans le fichier app.config ou Web.config :Debugging must be enabled with the following code in the app.config or Web.config file:

    <system.web>  
      <compilation debug="true" />  
    <system.web>  
    

Auto-hébergementSelf-Hosting

Un service auto-hébergé est un service WCF qui ne s’exécute pas à l’intérieur d’IIS, l’hôte de Service WCF, ou le ASP.NETASP.NET serveur de développement.A self-hosted service is a WCF service that does not run inside IIS, the WCF Service Host, or the ASP.NETASP.NET Development Server. Pour plus d’informations sur le débogage d’un service auto-hébergé, consultez Comment : déboguer un Service de WCF auto-hébergé.For information about how to debug a self-hosted service, see How to: Debug a Self-Hosted WCF Service.

Auto-hébergementSelf-Hosting

Pour activer le débogage de ASP.NETASP.NET applications 3.0 ou 3.5, ASP.NETASP.NET 3.0 ou 3.5 doit être installé avant Visual Studio 2010Visual Studio 2010 est installé.To enable debugging of ASP.NETASP.NET 3.0 or 3.5 applications, ASP.NETASP.NET 3.0 or 3.5 must be installed before Visual Studio 2010Visual Studio 2010 is installed. Si Visual Studio 2010Visual Studio 2010 est installé avant ASP.NETASP.NET 3.0 ou 3.5, une erreur se produit lorsque vous tentez de déboguer un ASP.NETASP.NET application 3.0 ou 3.5.If Visual Studio 2010Visual Studio 2010 is installed before ASP.NETASP.NET 3.0 or 3.5, an error occurs when you try to debug a ASP.NETASP.NET 3.0 or 3.5 application. Le message d'erreur est « Impossible d'effectuer automatiquement un pas à pas détaillé sur le serveur ».The error message is, "Unable to Automatically Step Into the Server." Pour résoudre ce problème, utilisez le Windows le panneau de configuration > programmes et fonctionnalités pour réparer votre Visual Studio 2010Visual Studio 2010 installation.To fix this problem, use the Windows Control Panel > Programs and Features to repair your Visual Studio 2010Visual Studio 2010 installation.

Voir aussiSee Also

Débogage de Services WCF Debugging WCF Services
Guide pratique pour déboguer un service WCF auto-hébergéHow to: Debug a Self-Hosted WCF Service