FaultException Classe

Definição

Representa uma falha 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
Herança
Herança
Derivado
Atributos

Exemplos

O exemplo de código a seguir mostra o uso de um bloco try/catch para capturar e manipular FaultException objetos lançados de um serviço.The following code example shows the use of a try/catch block to catch and handle FaultException objects thrown from a service. Isso geralmente ocorre quando a depuração está ativada no aplicativo de serviço.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

Comentários

Em um serviço, use a FaultException classe para criar uma falha não tipada para retornar ao cliente para fins de depuração.In a service, use the FaultException class to create an untyped fault to return to the client for debugging purposes.

Em um cliente, pegue FaultException objetos para lidar com falhas informativas ou genéricas, como aquelas retornadas por um serviço com a IncludeExceptionDetailInFaults propriedade definida como 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. Como o FaultException estende CommunicationException , lembre-se de capturar todos os FaultException objetos antes de capturar CommunicationException objetos se desejar capturá-los separadamente.Because FaultException extends CommunicationException, remember to catch any FaultException objects prior to catching CommunicationException objects if you want to catch them separately.

Observação

Os serviços duplex também podem capturar FaultException objetos retornados de sua interação com um cliente duplex.Duplex services can also catch FaultException objects returned from their interaction with a duplex client.

Em geral, é altamente recomendável que você use o FaultContractAttribute para criar seus serviços para retornar falhas SOAP fortemente tipadas (e não objetos de exceção gerenciado) para todos os casos de falha nos quais você decide que o cliente requer informações de falha.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. No entanto, use o FaultException nas seguintes situações:However, use the FaultException in the following situations:

  • Para enviar falhas SOAP de um serviço para fins de depuração.To send SOAP faults from a service for debugging purposes.

  • Capturar falhas de SOAP em um cliente quando as falhas não fazem parte do contrato de serviço.To catch SOAP faults on a client when the faults are not part of the service contract.

Gere FaultException objetos quando desejar que a cadeia de caracteres seja passada para o construtor e recuperada pelo cliente chamando o FaultException<TDetail>.ToString método.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 você especificar um contrato de falha do tipo System.ServiceModel.FaultException<TDetail> em que o parâmetro de tipo é System.String , o valor da cadeia de caracteres estará disponível como a FaultException<TDetail>.Detail propriedade e não chamando 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 obter detalhes, consulte especificando e manipulando falhas em contratos e serviços.For details, see Specifying and Handling Faults in Contracts and Services.

Construtores

FaultException()

Inicializa uma nova instância da classe FaultException.Initializes a new instance of the FaultException class.

FaultException(FaultReason)

Inicializa uma nova instância da classe FaultException usando o motivo especificado.Initializes a new instance of the FaultException class using the specified reason.

FaultException(FaultReason, FaultCode)

Inicializa uma nova instância da classe FaultException usando o motivo e o código de falha especificados.Initializes a new instance of the FaultException class using the specified reason and fault code.

FaultException(FaultReason, FaultCode, String)

Inicializa uma nova instância da classe FaultException usando o motivo especificado, código de falha e valor da ação.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

FaultException(MessageFault)

Inicializa uma nova instância da classe FaultException usando os valores de falha de mensagem especificados.Initializes a new instance of the FaultException class using the specified message fault values.

FaultException(MessageFault, String)

Inicializa uma nova instância da classe FaultException usando os valores de falha de mensagem especificados e a cadeia de caracteres de ação fornecida.Initializes a new instance of the FaultException class using the specified message fault values and the provided action string.

FaultException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe FaultException, usando as informações de serialização e de contexto especificadas ao desserializar um fluxo em um 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 uma nova instância da classe FaultException com o motivo da falha especificado.Initializes a new instance of the FaultException class with the specified fault reason.

FaultException(String, FaultCode)

Inicializa uma nova instância da classe FaultException usando o motivo e o código de falha SOAP especificados.Initializes a new instance of the FaultException class using the specified reason and SOAP fault code.

FaultException(String, FaultCode, String)

Inicializa uma nova instância da classe FaultException usando o motivo especificado, código de falha e valor da ação.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

Propriedades

Action

Obtém o valor da ação de SOAP para a mensagem com falha.Gets the value of the SOAP action for the fault message.

Code

Obtém o código com falha para a falha de SOAP.Gets the fault code for the SOAP fault.

Data

Obtém uma coleção de pares de chave/valor que fornecem informações definidas pelo usuário adicionais sobre a exceção.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.Gets or sets a link to the help file associated with this exception.

(Herdado de Exception)
HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Herdado de Exception)
InnerException

Obtém a instância Exception que causou a exceção atual.Gets the Exception instance that caused the current exception.

(Herdado de Exception)
Message

Obtém a mensagem para a exceção.Gets the message for the exception.

Reason

Obtém o FaultReason para a falha de SOAP.Gets the FaultReason for the SOAP fault.

Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error.

(Herdado de Exception)
StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.Gets a string representation of the immediate frames on the call stack.

(Herdado de Exception)
TargetSite

Obtém o método que gerou a exceção atual.Gets the method that throws the current exception.

(Herdado de Exception)

Métodos

CreateFault(MessageFault, String, Type[])

Retorna um objeto FaultException da falha de mensagem e ação especificadas e uma matriz de tipos de detalhes.Returns a FaultException object from the specified message fault, action and an array of detail types.

CreateFault(MessageFault, Type[])

Retorna um objeto FaultException da falha de mensagem especificada e uma matriz de tipos de detalhes.Returns a FaultException object from the specified message fault and an array of detail types.

CreateMessageFault()

Retorna um objeto MessageFault.Returns a MessageFault object.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Herdado de Exception)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Implementação do método GetObjectData(SerializationInfo, StreamingContext) que é chamado quando o objeto é serializado em um fluxo.Implementation of the GetObjectData(SerializationInfo, StreamingContext) method that is called when the object is serialized into a stream.

GetObjectData(SerializationInfo, StreamingContext)

Quando substituído em uma classe derivada, define o SerializationInfo com informações sobre a exceção.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Herdado de Exception)
GetType()

Obtém o tipo de runtime da instância atual.Gets the runtime type of the current instance.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Cria e retorna uma representação de cadeia de caracteres da exceção atual.Creates and returns a string representation of the current exception.

(Herdado de Exception)

Eventos

SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Herdado de Exception)

Aplica-se a