CommunicationException Класс

Определение

Представляет ошибку связи либо в службе, либо в клиентском приложении.

public ref class CommunicationException : Exception
public ref class CommunicationException : SystemException
public class CommunicationException : Exception
[System.Serializable]
public class CommunicationException : SystemException
type CommunicationException = class
    inherit Exception
[<System.Serializable>]
type CommunicationException = class
    inherit SystemException
Public Class CommunicationException
Inherits Exception
Public Class CommunicationException
Inherits SystemException
Наследование
CommunicationException
Наследование
CommunicationException
Производный
Атрибуты

Примеры

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

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

Комментарии

Надежные приложения клиента и службы Windows Communication Foundation (WCF) обрабатывают CommunicationException объекты, которые могут возникать во время взаимодействия. Также существует два типа исключений, унаследованных от CommunicationException (FaultException<TDetail> и FaultException), которые также часто ожидают клиенты. Следовательно, чтобы предотвратить перехват обработчиком более общего исключения CommunicationException этих более конкретный типов исключений, перехватите эти исключения до обработки CommunicationException.

  • FaultException<TDetail>объекты создаются на клиенте при получении ошибки SOAP, указанной в контракте операции, в ответ на двусторонняя операция (то есть метод с атрибутом с IsOneWay заданным значением ).OperationContractAttribute false

FaultException объекты создаются, когда прослушиватель получает ошибку SOAP, которая не ожидается или указана в контракте операции. Обычно это происходит при отладке приложения, если свойству IncludeExceptionDetailInFaults службы присвоено значение true.

Примечание

При реализации пользовательских каналов и элементов привязки настоятельно рекомендуется, чтобы компоненты выдавали только объекты, унаследованные от System.TimeoutException или CommunicationException. Если компоненты выдают исправимое исключение, характерное для компонента, поместите такое исключение в объект CommunicationException.

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

Важно!

Среда выполнения WCF не создает небезопасную CommunicationException обработку в точке, когда она покидает среду выполнения WCF и вводит пользовательский код.

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

CommunicationException()

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

CommunicationException(SerializationInfo, StreamingContext)

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

CommunicationException(String)

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

CommunicationException(String, Exception)

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

Свойства

Data

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

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

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

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

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

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

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

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

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

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

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

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

Получает строковое представление непосредственных кадров в стеке вызова.

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

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

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

Методы

Equals(Object)

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

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

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

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

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

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

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

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

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

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

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

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

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

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

События

SerializeObjectState
Является устаревшей.

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

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

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