Partager via


Limitations sur le 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 entre 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 effectue une demande à un service. Le service doit faire partie de votre solution.

  • Vous utilisez Attach to Process pour vous connecter à un service en cours d’exécution. Le débogage commence au sein du service.

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

Limitations sur l'intégration dans un service

Pour effectuer un pas à pas dans un service à partir d’applications clientes que vous déboguez, les conditions suivantes doivent être remplies :

  • 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 d’appels complète pendant que vous exécutez du 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 vous attachant au service à l’aide de l’attachement au processus. Lorsque vous utilisez Attach to Process sur un service, le code de débogage est automatiquement ajouté au fichier .config. Après cela, vous pouvez déboguer et passer au service sans avoir à modifier le fichier .config.

Limitations pour se désengager d'un service

Le fait de sortir d’un service et de revenir au client présente les mêmes limitations que celles décrites pour passer à un service. En outre, le débogueur doit être attaché au client. Si vous déboguez un client et entrez dans un service, le débogueur reste attaché au service. Cela est vrai que vous ayez lancé le client à l’aide de Démarrer le débogage ou que vous vous soyez attaché au client à l’aide de Attacher au processus. Si vous avez commencé à déboguer en vous connectant au service, le débogueur n’est pas encore connecté au client. Dans ce cas, si vous devez sortir du service et revenir au client, vous devez d’abord utiliser Attacher au processus pour l’attacher manuellement au client.

Limitations relatives à l’attachement automatique à un service

L’attachement automatique à un service présente 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 de bibliothèque de services WCF. Les projets de bibliothèque de services WCF peuvent être des bibliothèques de services ou des bibliothèques de service de flux de travail.

  • 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 Guide pratique pour déboguer un service WCF Self-Hosted.

Si vous voyez le message d’erreur « Impossible d’effectuer automatiquement un pas à pas dans le serveur ». Réparez votre installation de Visual Studio pour tenter de résoudre le problème. Cela peut se produire si vous installez Visual Studio avant d’installer ASP.NET.