Partager via


Limitations du débogage WCF

Il existe trois façons de commencer à déboguer un service WCF :

  • Vous déboguez un processus client qui appelle un service. Le débogueur effectue un pas à pas détaillé dans le service. Le service n'a pas besoin d'être dans la même solution que votre application cliente.

  • Vous déboguez un processus client qui fait une demande à un service. Le service doit faire partie de votre solution.

  • Vous utilisez Attacher au processus pour effectuer un attachement à un service en cours d'exécution. Le débogage commence à l'intérieur du service.

Cette rubrique décrit les limitations relatives à ces scénarios.

Limitations relatives au pas à pas détaillé dans un 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 :

  • Le client doit appeler le service à l'aide d'un objet client synchrone.

  • L'opération de contrat ne peut pas être unidirectionnelle.

  • 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.

  • Le débogage doit être activé avec le code suivant dans le fichier app.config ou Web.config :

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

    Ce code ne doit être ajouté qu'une seule fois. Vous pouvez ajouter ce code en modifiant le fichier .config ou en effectuant un attachement au service à l'aide de Attacher au processus. Lorsque vous utilisez Attacher au processus sur un service, le code de débogage est ajouté automatiquement au fichier .config. Après quoi vous pouvez effectuer un débogage et un pas à pas détaillé dans le service sans avoir à modifier le fichier .config.

Limitations relatives au pas à pas sortant d'un 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. De plus, le débogueur doit être attaché au client. Si vous déboguez un client et effectuez un pas à pas dans un service, le débogueur reste attaché au service. Cela est vrai que vous démarriez le client à l'aide de Démarrer le débogage ou que vous effectuiez un attachement au client à l'aide de Attacher au processus. Si vous avez commencé le débogage par un attachement au service, le débogueur n'est pas encore attaché au client. Dans ce cas, si vous devez effectuer un pas à pas sortant du service et revenir au client, vous devez d'abord utiliser Attacher au processus pour effectuer l'attachement au client manuellement.

Limitations relatives à l'attachement automatique à un service

L'attachement automatique à un service a les limitations suivantes :

  • Le service doit faire partie de la solution Visual Studio que vous déboguez.

  • Le service doit être hébergé. Il peut faire partie d'un projet de site Web (système de fichiers et HTTP), d'un projet d'application Web (système de fichiers et HTTP) ou d'un projet Bibliothèque du service WCF. Les projets Bibliothèque du service WCF peuvent être des bibliothèques du service ou des bibliothèques du service de workflow.

  • Le service doit être appelé à partir d'un client WCF.

  • Le débogage doit être activé avec le code suivant dans le fichier app.config ou Web.config :

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

Auto-hébergement

Un service auto-hébergé est un service WCF qui ne s'exécute pas à l'intérieur d'IIS, de l'hôte de service WCF ou du serveur de développement ASP.NET. Pour plus d'informations sur le débogage d'un service auto-hébergé, consultez Comment : déboguer un service WCF auto-hébergé.

Auto-hébergement

Pour permettre le débogage des applications ASP.NET 3.0 ou 3.5, ASP.NET 3.0 ou 3.5 doit être installé avant que Visual Studio 2010 soit installé. Si Visual Studio 2010 est installé avant ASP.NET 3.0 ou 3.5, une erreur se produit lorsque vous essayez de déboguer une application ASP.NET 3.0 ou 3.5. Le message d'erreur est « Impossible d'effectuer automatiquement un pas à pas détaillé sur le serveur ». Pour résoudre ce problème, dans le Panneau de configuration Windows, accédez à Programmes et Fonctionnalités afin de réparer votre installation Visual Studio 2010.

Voir aussi

Tâches

Comment : déboguer un service WCF auto-hébergé

Autres ressources

Débogage de services WCF