Freigeben über


FaultException Klasse

Definition

Stellt einen SOAP-Fehler dar.

public ref class FaultException : System::ServiceModel::CommunicationException
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
    inherit CommunicationException
[<System.Serializable>]
type FaultException = class
    inherit CommunicationException
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))>]
type FaultException = class
    inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
Vererbung
Vererbung
Abgeleitet
Attribute

Beispiele

Im folgenden Codebeispiel wird die Verwendung eines Try/Catch-Blocks zum Abfangen und Verarbeiten von FaultException-Objekten gezeigt, die von einem Dienst ausgelöst werden. Dies tritt oft auf, wenn Debugging in der Dienstanwendung aktiviert 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

Verwenden Sie die FaultException-Klasse in einem Dienst, um einen nicht typisierten Fehler zu erstellen, der an den Client zu Debuggingzwecken zurückgegeben wird.

Erfassen Sie FaultException-Objekte in einem Client, um unbekannte oder generische Fehler zu verarbeiten, wie z. B. Fehler, die von einem Dienst zurückgegeben werden, dessen IncludeExceptionDetailInFaults-Eigenschaft auf true festgelegt ist. Da FaultExceptionCommunicationException erweitert, sollten Sie daran denken, FaultException-Objekte vor CommunicationException-Objekten abzufangen, sofern Sie sie separat abfangen möchten.

Hinweis

Duplexdienste können auch FaultException-Objekte abfangen, die von ihrer Interaktion mit einem Duplexclient zurückgegeben werden.

In Allgemeinen wird dringend empfohlen, dass Sie FaultContractAttribute verwenden, um die Dienste so zu konzipieren, dass stark typisierte SOAP-Fehler (und keine verwalteten Ausnahmeobjekte) für alle Fehlerfälle zurückgegeben werden, in denen der Client Ihrer Entscheidung nach Fehlerinformationen benötigt. Sie sollten FaultException dennoch in folgenden Situationen verwenden:

  • wenn Sie SOAP-Fehler von einem Dienst zu Debuggingzwecken senden möchten

  • wenn Sie SOAP-Fehler auf einem Client abfangen möchten, sofern die Fehler nicht Teil des Dienstvertrags sind

Lösen Sie FaultException-Objekte aus, wenn die Zeichenfolgen an den Konstruktor übergeben und vom Client durch Aufruf der FaultException<TDetail>.ToString-Methode abgerufen werden sollen. Wenn Sie einen Fehlervertrag vom Typ System.ServiceModel.FaultException<TDetail> angeben, in dem der Typparameter System.String ist, ist der Zeichenfolgenwert als FaultException<TDetail>.Detail-Eigenschaft verfügbar und nicht durch Aufruf von FaultException<TDetail>.ToString.

Ausführliche Informationen finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten.

Konstruktoren

FaultException()

Initialisiert eine neue Instanz der FaultException-Klasse.

FaultException(FaultReason)

Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds.

FaultException(FaultReason, FaultCode)

Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grund- und Fehlercodes.

FaultException(FaultReason, FaultCode, String)

Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds, Fehlercodes und Aktionswerts.

FaultException(MessageFault)

Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Nachrichtenfehlerwerten.

FaultException(MessageFault, String)

Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Nachrichtenfehlerwerten und der bereitgestellten Aktionszeichenfolge.

FaultException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Serialisierungsinformationen und dem angegebenen Kontext, wenn ein Stream in ein FaultException-Objekt deserialisiert wird.

FaultException(String)

Initialisiert eine neue Instanz der FaultException-Klasse mit dem angegebenen Grund des Fehlers.

FaultException(String, FaultCode)

Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grund- und SOAP-Fehlercodes.

FaultException(String, FaultCode, String)

Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds, Fehlercodes und Aktionswerts.

Eigenschaften

Action

Ruft den Wert der SOAP-Aktion für die Fehlermeldung ab.

Code

Ruft den Fehlercode für den SOAP-Fehler ab.

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 die Meldung für die Ausnahme ab.

Reason

Ruft FaultReason für den SOAP-Fehler ab.

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

CreateFault(MessageFault, String, Type[])

Gibt ein FaultException-Objekt aus dem angegebenen Nachrichtenfehler, der Aktion und einem Array von Detailtypen zurück.

CreateFault(MessageFault, Type[])

Gibt ein FaultException-Objekt aus dem angegebenen Nachrichtenfehler und einem Array von Detailtypen zurück.

CreateMessageFault()

Gibt ein MessageFault-Objekt zurück.

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)

Implementierung der GetObjectData(SerializationInfo, StreamingContext)-Methode, die aufgerufen wird, wenn das Objekt in einen Stream serialisiert wird.

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: