Partager via


CommunicationException Classe

Définition

Représente une erreur de communication dans le service ou l’application cliente.

public ref class CommunicationException : Exception
public ref class CommunicationException : SystemException
public class CommunicationException : Exception
[System.Serializable]
public class CommunicationException : SystemException
type CommunicationException = class
    inherit Exception
[<System.Serializable>]
type CommunicationException = class
    inherit SystemException
Public Class CommunicationException
Inherits Exception
Public Class CommunicationException
Inherits SystemException
Héritage
CommunicationException
Héritage
CommunicationException
Dérivé
Attributs

Exemples

L’exemple de code suivant montre un client qui gère les CommunicationException types. Ce client gère également les FaultException objets, car le service a IncludeExceptionDetailInFaults défini sur true.

using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using Microsoft.WCF.Documentation;

public class Client
{
  public static void Main()
  {
    // Picks up configuration from the configuration file.
    SampleServiceClient wcfClient = new SampleServiceClient();
    try
    {
      // Making calls.
      Console.WriteLine("Enter the greeting to send: ");
      string greeting = Console.ReadLine();
      Console.WriteLine("The service responded: " + wcfClient.SampleMethod(greeting));
      Console.WriteLine("Press ENTER to exit:");
      Console.ReadLine();
    }
    catch (TimeoutException timeProblem)
    {
      Console.WriteLine("The service operation timed out. " + timeProblem.Message);
      wcfClient.Abort();
      Console.ReadLine();
    }
    // Catch the contractually specified SOAP fault raised here as an exception.
    catch (FaultException<GreetingFault> greetingFault)
    {
      Console.WriteLine(greetingFault.Detail.Message);
      Console.Read();
      wcfClient.Abort();
    }
    // Catch unrecognized faults. This handler receives exceptions thrown by WCF
    // services when ServiceDebugBehavior.IncludeExceptionDetailInFaults
    // is set to true.
    catch (FaultException faultEx)
    {
      Console.WriteLine("An unknown exception was received. "
        + faultEx.Message
        + faultEx.StackTrace
      );
      Console.Read();
      wcfClient.Abort();
    }
    // Standard communication fault handler.
    catch (CommunicationException commProblem)
    {
      Console.WriteLine("There was a communication problem. " + commProblem.Message + commProblem.StackTrace);
      Console.Read();
      wcfClient.Abort();
    }
  }
}

Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports Microsoft.WCF.Documentation

Public Class Client
  Public Shared Sub Main()
    ' Picks up configuration from the configuration file.
    Dim wcfClient As New SampleServiceClient()
    Try
      ' Making calls.
      Console.WriteLine("Enter the greeting to send: ")
      Dim greeting As String = Console.ReadLine()
      Console.WriteLine("The service responded: " & wcfClient.SampleMethod(greeting))
      Console.WriteLine("Press ENTER to exit:")
      Console.ReadLine()
    Catch timeProblem As TimeoutException
      Console.WriteLine("The service operation timed out. " & timeProblem.Message)
      wcfClient.Abort()
      Console.ReadLine()
    ' Catch the contractually specified SOAP fault raised here as an exception.
    Catch greetingFault As FaultException(Of GreetingFault)
      Console.WriteLine(greetingFault.Detail.Message)
      Console.Read()
      wcfClient.Abort()
    ' Catch unrecognized faults. This handler receives exceptions thrown by WCF
    ' services when ServiceDebugBehavior.IncludeExceptionDetailInFaults 
    ' is set to true.
    Catch faultEx As FaultException
      Console.WriteLine("An unknown exception was received. " & faultEx.Message + faultEx.StackTrace)
      Console.Read()
      wcfClient.Abort()
    ' Standard communication fault handler.
    Catch commProblem As CommunicationException
      Console.WriteLine("There was a communication problem. " & commProblem.Message + commProblem.StackTrace)
      Console.Read()
      wcfClient.Abort()
    End Try
  End Sub
End Class

Remarques

Les applications clientes et de service robustes Windows Communication Foundation (WCF) gèrent les CommunicationException objets qui peuvent être levées pendant la communication. Il existe également deux CommunicationExceptiontypes d’exceptions dérivés (FaultException<TDetail> et FaultException) que les clients attendent souvent. Par conséquent, pour empêcher le gestionnaire générique CommunicationException d’intercepter ces types d’exceptions plus spécifiques, interceptez ces exceptions avant la gestion CommunicationException.

  • FaultException<TDetail> les objets sont levées sur le client lorsqu’une erreur SOAP spécifiée dans le contrat d’opération est reçue en réponse à une opération bidirectionnelle (autrement dit, une méthode avec un OperationContractAttribute attribut défini IsOneWay sur false).

FaultException les objets sont levées lorsqu’un écouteur reçoit une erreur SOAP qui n’est pas attendue ou spécifiée dans le contrat d’opération. Cela se produit généralement lorsque l’application est déboguée et que le service a la IncludeExceptionDetailInFaults propriété définie truesur .

Note

Lors de l’implémentation de canaux personnalisés et d’éléments de liaison, il est fortement recommandé que vos composants lèvent uniquement System.TimeoutException ou CommunicationException-dérivés des objets. Dans le cas où vos composants lèvent une exception récupérable spécifique au composant, encapsulez cette exception à l’intérieur d’un CommunicationException objet.

Pour plus d’informations sur la conception et l’utilisation du système d’erreur WCF, consultez Spécification et gestion des erreurs dans les contrats et les services.

Important

Le runtime WCF ne lève pas un CommunicationException élément non sécurisé à gérer au moment où il quitte le runtime WCF et entre le code utilisateur.

Constructeurs

Nom Description
CommunicationException()

Initialise une nouvelle instance de la classe CommunicationException.

CommunicationException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la CommunicationException classe à l’aide des informations de sérialisation et des objets de contexte spécifiés.

CommunicationException(String, Exception)

Initialise une nouvelle instance de la CommunicationException classe à l’aide du message spécifié et de l’exception interne.

CommunicationException(String)

Initialise une nouvelle instance de la classe à l’aide CommunicationException du message spécifié.

Propriétés

Nom Description
Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.

(Hérité de Exception)
HelpLink

Obtient ou définit un lien vers le fichier d’aide associé à cette exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée affectée à une exception spécifique.

(Hérité de Exception)
InnerException

Obtient l’instance Exception qui a provoqué l’exception actuelle.

(Hérité de Exception)
Message

Obtient un message qui décrit l’exception actuelle.

(Hérité de Exception)
Source

Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des images immédiates sur la pile des appels.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l’exception actuelle.

(Hérité de Exception)

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est la cause racine d’une ou plusieurs exceptions ultérieures.

(Hérité de Exception)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

En cas de substitution dans une classe dérivée, définit l'SerializationInfo avec des informations sur l’exception.

(Hérité de Exception)
GetType()

Obtient le type d’exécution de l’instance actuelle.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Crée et retourne une représentation sous forme de chaîne de l’exception actuelle.

(Hérité de Exception)

Événements

Nom Description
SerializeObjectState
Obsolète.

Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception.

(Hérité de Exception)

S’applique à