Partager via


<serviceDebug>

Spécifie les fonctionnalités de débogage et d’informations d’aide pour un service Windows Communication Foundation (WCF).

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceDebug>

Syntaxe

<serviceDebug httpHelpPageBinding="String"
              httpHelpPageBindingConfiguration="String"
              httpHelpPageEnabled="Boolean"
              httpHelpPageUrl="Uri"
              httpsHelpPageBinding="String"
              httpsHelpPageBindingConfiguration="String"
              httpsHelpPageEnabled="Boolean"
              httpsHelpPageUrl="Uri"
              includeExceptionDetailInFaults="Boolean" />

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
httpHelpPageBinding Valeur de chaîne qui spécifie le type de liaison à utiliser lorsque le protocole HTTP permet d’accéder à la page d’aide du service.

La prise en charge n'est assurée que pour les liaisons comportant des éléments de liaison internes qui prennent en charge System.ServiceModel.Channels.IReplyChannel. En outre, la propriété System.ServiceModel.Channels.MessageVersion de la liaison doit être MessageVersion.None.
httpHelpPageBindingConfiguration Chaîne qui définit le nom de la liaison spécifiée dans l'attribut httpHelpPageBinding, qui fait référence aux informations de configuration supplémentaires de cette liaison. Le même nom doit être défini dans la section <bindings>.
httpHelpPageEnabled Valeur booléenne qui contrôle si WCF publie une page d’aide HTML à l’adresse spécifiée par l’attribut httpHelpPageUrl. La valeur par défaut est true.

Vous pouvez affecter la valeur false à cette propriété pour désactiver la publication d'une page d'aide HTML visible par les navigateurs HTML.

Pour vous assurer que la page d'aide HTML est publiée à l'emplacement contrôlé par l'attribut httpHelpPageUrl, vous devez affecter la valeur true à cet attribut. L'une des conditions suivantes doit également être remplie :

- L’attribut httpHelpPageUrl est une adresse absolue qui prend en charge le schéma de protocole HTTP.
- Il existe une adresse de base pour le service qui prend en charge le schéma de protocole HTTP.

Bien qu'une exception soit levée si une adresse absolue qui ne prend pas en charge le schéma de protocole HTTP est assignée à l'attribut httpHelpPageUrl, tout autre scénario dans lequel aucun des critères précédents n'est rempli ne lève pas d'exception et ne génère aucune page d'aide HTML.
httpHelpPageUrl URI qui spécifie l'URL basée sur HTTP relative ou absolue du fichier d'aide HTML personnalisé que l'utilisateur consulte lorsque le point de terminaison est affiché à l'aide d'un navigateur HTML.

Vous pouvez utiliser cet attribut pour activer l'utilisation d'un fichier d'aide HTML personnalisé retourné par une requête HTTP/Get, à partir d'un navigateur HTML par exemple. L'emplacement du fichier d'aide HTML est résolu comme suit.

1. Si la valeur de cet attribut est une adresse relative, l’emplacement du fichier d’aide HTML correspond à la valeur de l’adresse de base du service qui prend en charge les requêtes HTTP, plus la valeur de cette propriété.
2. Si la valeur de cet attribut est une adresse absolue et prend en charge les requêtes HTTP, l’emplacement du fichier d’aide HTML correspond à la valeur de cette propriété.
3. Si la valeur de cet attribut est absolue mais ne prend pas en charge les requêtes HTTP, une exception est levée.

Cet attribut est valide uniquement lorsque l’attribut httpHelpPageEnabled a la valeur true.
httpsHelpPageBinding Valeur de chaîne qui spécifie le type de liaison à utiliser lorsque le protocole HTTPS permet d’accéder à la page d’aide du service.

La prise en charge n'est assurée que pour les liaisons comportant des éléments de liaison internes qui prennent en charge IReplyChannel. En outre, la propriété System.ServiceModel.Channels.MessageVersion de la liaison doit être MessageVersion.None.
httpsHelpPageBindingConfiguration Chaîne qui définit le nom de la liaison spécifiée dans l'attribut httpsHelpPageBinding, qui fait référence aux informations de configuration supplémentaires de cette liaison. Le même nom doit être défini dans la section <bindings>.
httpsHelpPageEnabled Valeur booléenne qui contrôle si WCF publie une page d’aide HTML à l’adresse spécifiée par l’attribut httpsHelpPageUrl. La valeur par défaut est true.

Vous pouvez affecter la valeur false à cette propriété pour désactiver la publication d'une page d'aide HTML visible par les navigateurs HTML.

Pour vous assurer que la page d'aide HTML est publiée à l'emplacement contrôlé par l'attribut httpsHelpPageUrl, vous devez affecter la valeur true à cet attribut. L'une des conditions suivantes doit également être remplie :

- L’attribut httpsHelpPageUrl est une adresse absolue qui prend en charge le schéma de protocole HTTPS.
- Il existe une adresse de base pour le service qui prend en charge le schéma de protocole HTTPS.

Bien qu'une exception soit levée si une adresse absolue qui ne prend pas en charge le schéma de protocole HTTPS est assignée à l'attribut httpsHelpPageUrl, tout autre scénario dans lequel aucun des critères précédents n'est rempli ne lève pas d'exception et ne génère aucune page d'aide HTML.
httpsHelpPageUrl URI qui spécifie l'URL basée sur HTTPS relative ou absolue du fichier d'aide HTML personnalisé que l'utilisateur consulte lorsque le point de terminaison est affiché à l'aide d'un navigateur HTML.

Vous pouvez utiliser cet attribut pour activer l'utilisation d'un fichier d'aide HTML personnalisé retourné par une requête HTTPS/Get, à partir d'un navigateur HTML par exemple. L'emplacement du fichier d'aide HTML est résolu comme suit :

- Si la valeur de cette propriété est une adresse relative, l’emplacement du fichier d’aide HTML est la valeur de l’adresse de base du service qui prend en charge les requêtes HTTPS, plus cette valeur de propriété.
- Si la valeur de cette propriété est une adresse absolue et prend en charge les requêtes HTTPS, l’emplacement du fichier d’aide HTML est la valeur de cette propriété.
- Si la valeur de cette propriété est absolue mais ne prend pas en charge les requêtes HTTPS, une exception est levée.

Cet attribut est valide uniquement lorsque l’attribut httpHelpPageEnabled a la valeur true.
includeExceptionDetailInFaults Valeur qui spécifie si des informations sur les exceptions managées doivent être incluses dans les informations sur les erreurs SOAP retournées au client à des fins de débogage. Par défaut, il s’agit de false.

Si vous affectez par programme la valeur true à l'attribut, vous pouvez activer le flux d'informations sur les exceptions managées pour le client à des fins de débogage, ainsi que la publication de fichiers d'informations HTML pour les utilisateurs qui parcourent le service avec un navigateur Web. Attention : Le retour des informations sur les exceptions managées aux clients peut entraîner un problème de sécurité. En effet, les détails de l'exception exposent des informations relatives à l'implémentation d'un service interne qui peuvent être utilisées par des clients non autorisés.

Éléments enfants

Aucune.

Éléments parents

Élément Description
<behavior> Spécifie un élément de comportement.

Notes

Affecter à includeExceptionDetailInFaults la valeur true permet au service de retourner toute exception levée même par le code d’application si l’exception n’est pas déclarée à l’aide du FaultContractAttribute. Ce paramètre est utile lors du débogage de cas où le serveur lève une exception inattendue. Avec cet attribut, un formulaire sérialisé de l'exception inconnue est retourné et vous pouvez consulter plus de détails de l'exception.

Attention

Le retour d'informations sur les exceptions managées aux clients peut constituer un problème de sécurité, car les détails d'exception exposent des informations relatives à l'implémentation de service interne que des clients non autorisés pourraient utiliser. En raison des risques de sécurité encourus, il est fortement recommandé de n'utiliser cette méthode que dans le cadre de scénarios de débogage contrôlés. Vous devez affecter la valeur includeExceptionDetailInFaults à false lors du déploiement de l'application.

Pour plus d’informations sur les problèmes de sécurité liés à l’exception managée, consultez Spécification et gestion des erreurs dans les contrats et les services. Pour obtenir un exemple de code, consultez Comportement du débogage du service.

Vous pouvez également définir httpsHelpPageEnabled et httpsHelpPageUrl pour activer ou désactiver la page d'aide. Chaque service peut éventuellement exposer une page d'aide qui contient des informations sur le service, et notamment le point de terminaison permettant d'obtenir le WSDL pour le service. Pour ce faire, affectez httpHelpPageEnabled à true. Cela permet de retourner la page d'aide dans une demande GET à l'adresse de base du service. Pour modifier cette adresse, définissez l'attribut httpHelpPageUrl. En outre, vous pouvez faire sécuriser cette procédure en utilisant HTTPS au lieu de HTTP.

Les attributs facultatifs httpHelpPageBinding et httpHelpPageBinding vous permettent de configurer les liaisons utilisées pour accéder à la page Web du service. S’ils ne sont pas spécifiés, les liaisons par défaut (HttpTransportBindingElement dans le cas de HTTP et HttpsTransportBindingElement dans le cas de HTTPS) sont utilisées pour accéder à la page d’aide du service. Notez que vous ne pouvez pas utiliser ces attributs avec les liaisons WCF intégrées. Seules les liaisons avec des éléments de liaison internes qui prennent en charge xref:System.ServiceModel.Channels.IReplyChannel> seront prises en charge. En outre, la propriété System.ServiceModel.Channels.MessageVersion de la liaison doit être MessageVersion.None.

Voir aussi