Freigeben über


CommunicationException Klasse

Definition

Stellt einen Kommunikationsfehler in der Dienst- oder der Clientanwendung dar.

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
Vererbung
CommunicationException
Vererbung
CommunicationException
Abgeleitet
Attribute

Beispiele

Im folgenden Codebeispiel wird ein Client gezeigt, der CommunicationException-Typen verarbeitet. Dieser Client verarbeitet auch FaultException-Objekte, da beim Dienst IncludeExceptionDetailInFaults auf true festgelegt ist.

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

Hinweise

Robuste Client- und Dienst-Windows Communication Foundation (WCF)-Anwendungen behandeln CommunicationException Objekte, die während der Kommunikation ausgelöst werden können. Es gibt auch zwei von CommunicationException abgeleitete Ausnahmetypen (FaultException<TDetail> und FaultException), die häufig von Clients erwartet werden. Um daher zu verhindern, dass der generische CommunicationException-Handler diese spezifischeren Ausnahmetypen abfängt, müssen die Ausnahmen vor der Verarbeitung von CommunicationException abgefangen werden.

  • FaultException<TDetail> Objekte werden auf dem Client ausgelöst, wenn ein SOAP-Fehler, der im Vorgangsvertrag angegeben ist, als Antwort auf einen zweiwegigen Vorgang empfangen wird (das heißt, eine Methode mit einem OperationContractAttribute Attribut IsOneWay mit Set auf false).

FaultException Objekte werden ausgelöst, wenn ein Listener einen SOAP-Fehler empfängt, der im Vorgangsvertrag nicht erwartet oder angegeben ist. Dies tritt in der Regel auf, wenn für die Anwendung ein Debugvorgang durchgeführt wird und die IncludeExceptionDetailInFaults-Eigenschaft des Diensts auf true festgelegt wurde.

Hinweis

Beim Implementieren benutzerdefinierter Kanäle und Bindungselemente wird dringend empfohlen, dass Ihre Komponenten nur von System.TimeoutException oder CommunicationException abgeleitete Objekte auslösen. Wenn Ihre Komponenten eine behebbare Ausnahme ausgeben, die spezifisch für die Komponente ist, betten Sie diese Ausnahme in ein CommunicationException-Objekt ein.

Weitere Informationen zum Entwerfen und Verwenden des WCF-Fehlersystems finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten.

Wichtig

Die WCF-Runtime löst keine CommunicationException Sicherheit aus, um an der Stelle zu behandeln, an der sie die WCF-Runtime verlässt und Benutzercode eingibt.

Konstruktoren

CommunicationException()

Initialisiert eine neue Instanz der CommunicationException-Klasse.

CommunicationException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der CommunicationException-Klasse mit den angegebenen Serialisierungsinformationen und Kontextobjekten.

CommunicationException(String)

Initialisiert eine neue Instanz der CommunicationException-Klasse unter Verwendung der angegebenen Nachricht.

CommunicationException(String, Exception)

Initialisiert eine neue Instanz der CommunicationException-Klasse unter Verwendung der angegebenen Nachricht und der internen Ausnahme.

Eigenschaften

Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.

(Geerbt von Exception)
HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.

(Geerbt von Exception)
InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Meldung ab, mit der die aktuelle Ausnahme beschrieben wird.

(Geerbt von Exception)
Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist.

(Geerbt von Exception)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.

(Geerbt von Exception)

Ereignisse

SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

(Geerbt von Exception)

Gilt für