Partager via


Limitations du débogage WCF

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

Standard

La rubrique s'applique La rubrique s'applique La rubrique ne s'applique pas La rubrique s'applique

Pro et Team

La rubrique s'applique La rubrique s'applique La rubrique ne s'applique pas La rubrique s'applique

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

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

Voir aussi

Tâches

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

Autres ressources

Débogage de services WCF