CommunicationException Classe

Définition

Représente une erreur de communication dans le service ou l'application cliente.Represents a communication error in either the service or client application.

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

Exemples

L'exemple de code suivant illustre un client qui gère les types CommunicationException.The following code example shows a client that handles CommunicationException types. Ce client gère également les objets FaultException car la valeur IncludeExceptionDetailInFaults est affectée à la propriété true du service .This client also handles FaultException objects because the service has IncludeExceptionDetailInFaults set to 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 WCF (client et service Windows Communication Foundation) robustes gèrent les objets CommunicationException qui peuvent être renvoyés au cours de la communication.Robust client and service Windows Communication Foundation (WCF) applications handle CommunicationException objects that may be thrown during communication. Il existe également deux types d'exception dérivés de l'CommunicationException (FaultException<TDetail> et FaultException) que les clients attendent souvent.There are also two CommunicationException-derived exception types (FaultException<TDetail> and FaultException) that clients also often expect. Par conséquent, pour empêcher que le gestionnaire CommunicationException générique intercepte ces types d'exception plus spécifiques, interceptez ces exceptions avant de gérer CommunicationException.Therefore, in order to prevent the generic CommunicationException handler from catching these more specific exception types, catch these exceptions prior to handling CommunicationException.

  • Les objets FaultException<TDetail> sont levés 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 attribut OperationContractAttribute ayant la valeur IsOneWay affectée à la propriété false).FaultException<TDetail> objects are thrown on the client when a SOAP fault that is specified in the operation contract is received in response to a two-way operation (that is, a method with an OperationContractAttribute attribute with IsOneWay set to false).

Les objets FaultException sont levés lorsqu'un écouteur reçoit une erreur SOAP qui n'est pas attendue ou qui n'est pas spécifiée dans le contrat d'opération.FaultException objects are thrown when a listener receives a SOAP fault that is not expected or specified in the operation contract. Cela se produit habituellement lorsque l'application est déboguée et que la valeur IncludeExceptionDetailInFaults est affectée à la propriété true du service.This usually occurs when the application is being debugged and the service has the IncludeExceptionDetailInFaults property set to true.

Notes

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 des objets dérivés de l’System.TimeoutException ou CommunicationException.When implementing custom channels and binding elements, it is strongly recommended that your components throw only System.TimeoutException or CommunicationException-derived objects. Dans le cas où vos composants lèvent une exception récupérable qui est spécifique au composant, encapsulez cette exception dans un objet CommunicationException.In the case where your components throw a recoverable exception that is specific to the component, wrap that exception inside a CommunicationException object.

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.For more details about designing and using the WCF fault system, see Specifying and Handling Faults in Contracts and Services.

Important

Le runtime WCF ne lève pas d’exception CommunicationException, ce qui n’est pas sûr à gérer au point où il quitte le runtime WCF et entre dans le code utilisateur.The WCF Runtime will not throw a CommunicationException that is unsafe to handle at the point where it leaves the WCF Runtime and enters user code.

Constructeurs

CommunicationException()

Initialise une nouvelle instance de la classe CommunicationException.Initializes a new instance of the CommunicationException class.

CommunicationException(SerializationInfo, StreamingContext)

Initialise une nouvelle instance de la classe CommunicationException à l'aide des informations de sérialisation et des objets de contexte spécifiés.Initializes a new instance of the CommunicationException class, using the specified serialization information and context objects.

CommunicationException(String)

Initialise une nouvelle instance de la classe CommunicationException à l'aide du message spécifié.Initializes a new instance of the CommunicationException class, using the specified message.

CommunicationException(String, Exception)

Initialise une nouvelle instance de la classe CommunicationException à l'aide du message et de l'exception interne spécifiés.Initializes a new instance of the CommunicationException class, using the specified message and the inner exception.

Propriétés

Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Hérité de Exception)
HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.Gets or sets a link to the help file associated with this exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Hérité de Exception)
InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.Gets the Exception instance that caused the current exception.

(Hérité de Exception)
Message

Obtient un message qui décrit l'exception actuelle.Gets a message that describes the current exception.

(Hérité de Exception)
Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.Gets or sets the name of the application or the object that causes the error.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.Gets a string representation of the immediate frames on the call stack.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l'exception actuelle.Gets the method that throws the current exception.

(Hérité de Exception)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Hérité de Exception)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)

En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Hérité de Exception)
GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.Gets the runtime type of the current instance.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Crée et retourne une chaîne représentant l'exception actuelle.Creates and returns a string representation of the current exception.

(Hérité de Exception)

Événements

SerializeObjectState

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Hérité de Exception)

S’applique à