FaultException Clase

Definición

Representa un error de SOAP.Represents a SOAP fault.

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
Herencia
Herencia
Derivado
Atributos

Ejemplos

El ejemplo de código siguiente muestra el uso de un bloque try/catch para detectar y administrar los objetos FaultException iniciados desde un servicio.The following code example shows the use of a try/catch block to catch and handle FaultException objects thrown from a service. Esto ocurre a menudo cuando se activa la depuración en la aplicación de servicio.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

Comentarios

En un servicio, utilice la clase FaultException para crear un error sin tipo que devolver al cliente para fines de depuración.In a service, use the FaultException class to create an untyped fault to return to the client for debugging purposes.

En un cliente, detecte objetos FaultException para administrar errores desconocidos o genéricos, como aquéllos devueltos por un servicio con la propiedad IncludeExceptionDetailInFaults definida en 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. Dado que FaultException extiende CommunicationException, recuerde detectar cualquier objeto FaultException antes de detectar objetos CommunicationException si desea hacerlo por separado.Because FaultException extends CommunicationException, remember to catch any FaultException objects prior to catching CommunicationException objects if you want to catch them separately.

Nota

Los servicios dúplex también pueden detectar objetos FaultException devueltos de su interacción con un cliente dúplex.Duplex services can also catch FaultException objects returned from their interaction with a duplex client.

En general, se recomienda encarecidamente que utilice FaultContractAttribute para diseñar los servicios para devolver los errores de SOAP fuertemente tipados (y no los objetos de excepción administrados) para todos los casos de error en los que decida que el cliente necesita información sobre el error.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. Sin embargo, utilice FaultException en las siguientes situaciones:However, use the FaultException in the following situations:

  • Para enviar los errores de SOAP desde un servicio para fines de depuración.To send SOAP faults from a service for debugging purposes.

  • Para detectar los errores de SOAP en un cliente cuando los errores no forman parte del contrato de servicio.To catch SOAP faults on a client when the faults are not part of the service contract.

Inicie los objetos FaultException cuando desee pasar la cadena al constructor y que el cliente la recupere llamando al método 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. Si especifica un contrato de error de tipo System.ServiceModel.FaultException<TDetail> donde el parámetro de tipo es System.String, el valor de la cadena estará disponible como propiedad FaultException<TDetail>.Detail y no llamando a 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.

Para obtener más información, consulte especificar y controlar errores en contratos y servicios.For details, see Specifying and Handling Faults in Contracts and Services.

Constructores

FaultException()

Inicializa una nueva instancia de la clase FaultException.Initializes a new instance of the FaultException class.

FaultException(FaultReason)

Inicializa una instancia nueva de la clase FaultException con la razón especificada.Initializes a new instance of the FaultException class using the specified reason.

FaultException(FaultReason, FaultCode)

Inicializa una instancia nueva de la clase FaultException con la razón y el código de error especificados.Initializes a new instance of the FaultException class using the specified reason and fault code.

FaultException(FaultReason, FaultCode, String)

Inicializa una instancia nueva de la clase FaultException con la razón, código de error y valor de acción especificados.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

FaultException(MessageFault)

Inicializa una instancia nueva de la clase FaultException con los valores de error del mensaje especificado.Initializes a new instance of the FaultException class using the specified message fault values.

FaultException(MessageFault, String)

Inicializa una instancia nueva de la clase FaultException con los valores de error del mensaje especificados y la cadena de acciones proporcionada.Initializes a new instance of the FaultException class using the specified message fault values and the provided action string.

FaultException(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase FaultException con los parámetros especificados: la información de serialización y el contexto al deserializar una secuencia en un objeto 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)

Inicializa una instancia nueva de la clase FaultException con el razón del error especificada.Initializes a new instance of the FaultException class with the specified fault reason.

FaultException(String, FaultCode)

Inicializa una instancia nueva de la clase FaultException con la razón especificada y el código de error de SOAP.Initializes a new instance of the FaultException class using the specified reason and SOAP fault code.

FaultException(String, FaultCode, String)

Inicializa una instancia nueva de la clase FaultException con la razón, código de error y valor de acción especificados.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

Propiedades

Action

Obtiene el valor de la acción de SOAP para el mensaje de error.Gets the value of the SOAP action for the fault message.

Code

Obtiene el código de error para el error de SOAP.Gets the fault code for the SOAP fault.

Data

Obtiene una colección de pares clave/valor que proporciona información definida por el usuario adicional sobre la excepción.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Heredado de Exception)
HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.Gets or sets a link to the help file associated with this exception.

(Heredado de Exception)
HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Heredado de Exception)
InnerException

Obtiene la instancia Exception que produjo la excepción actual.Gets the Exception instance that caused the current exception.

(Heredado de Exception)
Message

Obtiene el mensaje para la excepción.Gets the message for the exception.

Reason

Obtiene FaultReason para el error de SOAP.Gets the FaultReason for the SOAP fault.

Source

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.Gets or sets the name of the application or the object that causes the error.

(Heredado de Exception)
StackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.Gets a string representation of the immediate frames on the call stack.

(Heredado de Exception)
TargetSite

Obtiene el método que produjo la excepción actual.Gets the method that throws the current exception.

(Heredado de Exception)

Métodos

CreateFault(MessageFault, String, Type[])

Devuelve un objeto FaultException desde el error del mensaje, la acción y una matriz de tipos de detalle especificados.Returns a FaultException object from the specified message fault, action and an array of detail types.

CreateFault(MessageFault, Type[])

Devuelve un objeto FaultException desde el error del mensaje especificado y una matriz de tipos de detalle.Returns a FaultException object from the specified message fault and an array of detail types.

CreateMessageFault()

Devuelve un objeto MessageFault.Returns a MessageFault object.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetBaseException()

Cuando se invalida en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Heredado de Exception)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Implementación del método GetObjectData(SerializationInfo, StreamingContext) al que se llama cuando el objeto se serializa en un flujo.Implementation of the GetObjectData(SerializationInfo, StreamingContext) method that is called when the object is serialized into a stream.

GetObjectData(SerializationInfo, StreamingContext)

Cuando se invalida en una clase derivada, establece SerializationInfo con información sobre la excepción.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Heredado de Exception)
GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.Gets the runtime type of the current instance.

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Crea y devuelve una representación de cadena de la excepción actual.Creates and returns a string representation of the current exception.

(Heredado de Exception)

Eventos

SerializeObjectState

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Heredado de Exception)

Se aplica a