FaultException Класс

Определение

Представляет ошибку SOAP.

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
Наследование
Наследование
Производный
Атрибуты

Примеры

В следующем примере кода показано использование блока try/catch для перехвата и обработки FaultException объектов, создаваемых службой. Это часто происходит при включении отладки в приложении-службе.

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

Комментарии

В службе используйте FaultException класс для создания нетипизированной ошибки, чтобы вернуться клиенту в целях отладки.

В клиенте перехватите FaultException объекты для обработки неизвестных или универсальных ошибок, например тех, которые возвращаются службой с заданным trueсвойствомIncludeExceptionDetailInFaults. Так как FaultException расширение CommunicationExceptionрасширяется, не забудьте поймать все FaultException объекты перед перехватом CommunicationException объектов, если вы хотите их поймать отдельно.

Замечание

Дуплексные службы также могут перехватывать FaultException объекты, возвращаемые из их взаимодействия с дуплексным клиентом.

Как правило, настоятельно рекомендуется использовать FaultContractAttribute для разработки служб для возврата строго типизированных ошибок SOAP (и не управляемых объектов исключений) для всех случаев сбоя, в которых клиент решает, что клиент требует сведений об ошибке. Однако используйте FaultException следующие ситуации:

  • Отправка ошибок SOAP из службы в целях отладки.

  • Чтобы поймать ошибки SOAP на клиенте, если ошибки не являются частью контракта службы.

Создает FaultException объекты, когда требуется, чтобы строка была передана конструктору и получена клиентом путем вызова FaultException<TDetail>.ToString метода. Если указать контракт сбоя типа, в котором указан параметр типаSystem.ServiceModel.FaultException<TDetail>, строковое значение доступно в качестве FaultException<TDetail>.Detail свойства, а не путем вызоваFaultException<TDetail>.ToString.System.String

Дополнительные сведения см. в разделе "Указание и обработка ошибок в контрактах и службах".

Конструкторы

Имя Описание
FaultException()

Инициализирует новый экземпляр класса FaultException.

FaultException(FaultReason, FaultCode, String)

Инициализирует новый экземпляр класса с помощью указанной FaultException причины, кода сбоя и значения действия.

FaultException(FaultReason, FaultCode)

Инициализирует новый экземпляр класса с помощью указанной FaultException причины и кода сбоя.

FaultException(FaultReason)

Инициализирует новый экземпляр класса с помощью указанной FaultException причины.

FaultException(MessageFault, String)

Инициализирует новый экземпляр FaultException класса, используя указанные значения ошибки сообщения и указанную строку действия.

FaultException(MessageFault)

Инициализирует новый экземпляр класса с помощью указанных значений FaultException ошибки сообщения.

FaultException(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр FaultException класса, используя указанные сведения о сериализации и контексте при десериализации потока в FaultException объект.

FaultException(String, FaultCode, String)

Инициализирует новый экземпляр класса с помощью указанной FaultException причины, кода сбоя и значения действия.

FaultException(String, FaultCode)

Инициализирует новый экземпляр класса с помощью указанной FaultException причины и кода сбоя SOAP.

FaultException(String)

Инициализирует новый экземпляр FaultException класса с указанной причиной сбоя.

Свойства

Имя Описание
Action

Возвращает значение действия SOAP для сообщения об ошибке.

Code

Возвращает код сбоя для ошибки SOAP.

Data

Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении.

(Унаследовано от Exception)
HelpLink

Возвращает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр Exception, вызвавшего текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение для исключения.

Reason

Возвращает ошибку FaultReason SOAP.

Source

Возвращает или задает имя приложения или объекта, вызывающего ошибку.

(Унаследовано от Exception)
StackTrace

Возвращает строковое представление непосредственных кадров в стеке вызовов.

(Унаследовано от Exception)
TargetSite

Возвращает метод, который вызывает текущее исключение.

(Унаследовано от Exception)

Методы

Имя Описание
CreateFault(MessageFault, String, Type[])

FaultException Возвращает объект из указанного сбоя сообщения, действия и массива типов подробностей.

CreateFault(MessageFault, Type[])

FaultException Возвращает объект из указанного сбоя сообщения и массив типов подробностей.

CreateMessageFault()

Возвращает объект MessageFault.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает Exception, которая является основной причиной одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

GetObjectData(SerializationInfo, StreamingContext) Реализация метода, вызываемого при сериализации объекта в поток.

GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

Имя Описание
SerializeObjectState
Устаревшие..

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к