FaultException FaultException FaultException FaultException Class

Definizione

Rappresenta un errore SOAP.Represents a SOAP fault.

public ref class FaultException : System::ServiceModel::CommunicationException
[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))]
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
    inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
Ereditarietà
Derivato
Attributi

Esempi

Nell'esempio di codice seguente viene mostrato l'utilizzo di un blocco try/catch per rilevare e gestire oggetti FaultException generati da un servizio.The following code example shows the use of a try/catch block to catch and handle FaultException objects thrown from a service. Ciò si verifica spesso quando si attiva il debug nell'applicazione di servizio.This often occurs when debugging is turned on in the service application.

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

Commenti

Nei servizi, la classe FaultException può essere utilizzata per creare un errore non tipizzato da restituire al client per fini di debug.In a service, use the FaultException class to create an untyped fault to return to the client for debugging purposes.

Nei client, gli oggetti FaultException possono essere rilevati per gestire errori sconosciuti o generici, ad esempio quelli restituiti da un servizio in cui la proprietà IncludeExceptionDetailInFaults è impostata su true.In a client, catch FaultException objects to handle unknown or generic faults, such as those returned by a service with the IncludeExceptionDetailInFaults property set to true. Poiché la classe FaultException estende la classe CommunicationException, ricordarsi di rilevare qualsiasi oggetto FaultException prima di rilevare gli oggetti CommunicationException se si desidera rilevarli separatamente.Because FaultException extends CommunicationException, remember to catch any FaultException objects prior to catching CommunicationException objects if you want to catch them separately.

Nota

Anche i servizi duplex possono rilevare gli oggetti FaultException restituiti dalla loro interazione con un client duplex.Duplex services can also catch FaultException objects returned from their interaction with a duplex client.

In generale, è consigliabile utilizzare l'attributo FaultContractAttribute per progettare i servizi in modo che restituiscano errori SOAP fortemente tipizzati (anziché oggetti eccezione non gestiti) per tutti i casi di errore in cui si desidera che il client richieda informazioni sull'errore.In general, it is strongly recommended that you use the FaultContractAttribute to design your services to return strongly-typed SOAP faults (and not managed exception objects) for all fault cases in which you decide the client requires fault information. Nei casi elencati di seguito è tuttavia opportuno utilizzare l'eccezione FaultException:However, use the FaultException in the following situations:

  • Invio di errori SOAP da un servizio per fini di debug.To send SOAP faults from a service for debugging purposes.

  • Rilevamento di errori SOAP su un client quando gli errori non appartengono al contratto di servizio.To catch SOAP faults on a client when the faults are not part of the service contract.

Quando si desidera che la stringa venga passata al costruttore e recuperata dal client mediante una chiamata al metodo FaultException è possibile generare oggetti FaultException<TDetail>.ToString.Throw FaultException objects when you want the string to be passed to the constructor and retrieved by the client by calling the FaultException<TDetail>.ToString method. Se si specifica un contratto di errore di tipo System.ServiceModel.FaultException<TDetail> in cui il parametro è di tipo System.String, per accedere al valore della stringa è possibile usare la proprietà FaultException<TDetail>.Detail e non il metodo FaultException<TDetail>.ToString.If you specify a fault contract of type System.ServiceModel.FaultException<TDetail> where the type parameter is System.String, the string value is available as the FaultException<TDetail>.Detail property and not by calling FaultException<TDetail>.ToString.

Per informazioni dettagliate, vedere specifica e gestione di errori in contratti e servizi.For details, see Specifying and Handling Faults in Contracts and Services.

Costruttori

FaultException() FaultException() FaultException() FaultException()

Inizializza una nuova istanza della classe FaultException.Initializes a new instance of the FaultException class.

FaultException(FaultReason) FaultException(FaultReason) FaultException(FaultReason) FaultException(FaultReason)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando il motivo specificato.Initializes a new instance of the FaultException class using the specified reason.

FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando il motivo e il codice di errore specificati.Initializes a new instance of the FaultException class using the specified reason and fault code.

FaultException(FaultReason, FaultCode, String) FaultException(FaultReason, FaultCode, String) FaultException(FaultReason, FaultCode, String) FaultException(FaultReason, FaultCode, String)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando il motivo, il codice di errore e il valore di azione specificati.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

FaultException(MessageFault) FaultException(MessageFault) FaultException(MessageFault) FaultException(MessageFault)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando i valori di messaggio di errore specificati.Initializes a new instance of the FaultException class using the specified message fault values.

FaultException(MessageFault, String) FaultException(MessageFault, String) FaultException(MessageFault, String) FaultException(MessageFault, String)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando i valori di messaggio di errore specificati e la stringa di azione fornita.Initializes a new instance of the FaultException class using the specified message fault values and the provided action string.

FaultException(SerializationInfo, StreamingContext) FaultException(SerializationInfo, StreamingContext) FaultException(SerializationInfo, StreamingContext) FaultException(SerializationInfo, StreamingContext)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando le informazioni e il contesto di serializzazione specificati quando si deserializza un flusso in un oggetto FaultException.Initializes a new instance of the FaultException class using the specified serialization information and context when deserializing a stream into a FaultException object.

FaultException(String) FaultException(String) FaultException(String) FaultException(String)

Consente di inizializzare una nuova istanza della classe FaultException con il motivo dell'errore specificato.Initializes a new instance of the FaultException class with the specified fault reason.

FaultException(String, FaultCode) FaultException(String, FaultCode) FaultException(String, FaultCode) FaultException(String, FaultCode)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando il motivo e il codice di errore SOAP specificati.Initializes a new instance of the FaultException class using the specified reason and SOAP fault code.

FaultException(String, FaultCode, String) FaultException(String, FaultCode, String) FaultException(String, FaultCode, String) FaultException(String, FaultCode, String)

Consente di inizializzare una nuova istanza della classe FaultException utilizzando il motivo, il codice di errore e il valore di azione specificati.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

Proprietà

Action Action Action Action

Consente di ottenere il valore di azione SOAP relativo al messaggio di errore.Gets the value of the SOAP action for the fault message.

Code Code Code Code

Consente di ottenere il codice dell'errore SOAP.Gets the fault code for the SOAP fault.

Data Data Data Data

Ottiene una raccolta di coppie chiave-valore che fornisce informazioni aggiuntive definite dall'utente relative all'eccezione.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato a un'eccezione specifica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Consente di ottenere il messaggio dell'eccezione.Gets the message for the exception.

Reason Reason Reason Reason

Consente di ottenere l'oggetto FaultReason relativo all'errore SOAP.Gets the FaultReason for the SOAP fault.

Source Source Source Source

Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Ottiene una rappresentazione di stringa dei frame immediati nello stack di chiamate.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Ottiene il metodo che genera l'eccezione corrente.Gets the method that throws the current exception.

(Inherited from Exception)

Metodi

CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[])

Restituisce un oggetto FaultException a partire dal messaggio di errore, dall'azione e dalla matrice di tipi di dettaglio specificati.Returns a FaultException object from the specified message fault, action and an array of detail types.

CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[])

Restituisce un oggetto FaultException a partire dal messaggio di errore e dalla matrice di tipi di dettaglio specificati.Returns a FaultException object from the specified message fault and an array of detail types.

CreateMessageFault() CreateMessageFault() CreateMessageFault() CreateMessageFault()

Restituisce un oggetto MessageFault.Returns a MessageFault object.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Se utilizzato come metodo di override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Implementazione del metodo GetObjectData(SerializationInfo, StreamingContext) chiamato quando l'oggetto viene serializzato in un flusso.Implementation of the GetObjectData(SerializationInfo, StreamingContext) method that is called when the object is serialized into a stream.

GetType() GetType() GetType() GetType()

Ottiene il tipo di runtime dell'istanza corrente.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Eventi

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Si applica a