Udostępnij za pośrednictwem


CommunicationException Klasa

Definicja

Reprezentuje błąd komunikacji w usłudze lub aplikacji klienckiej.

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
Dziedziczenie
CommunicationException
Dziedziczenie
CommunicationException
Pochodne
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia klienta, który obsługuje CommunicationException typy. Ten klient obsługuje FaultException również obiekty, ponieważ usługa ma IncludeExceptionDetailInFaults ustawioną wartość 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

Uwagi

Niezawodne aplikacje klienckie i usługi Windows Communication Foundation (WCF) obsługują CommunicationException obiekty, które mogą być zgłaszane podczas komunikacji. Istnieją również dwa CommunicationExceptiontypy wyjątków pochodnych (FaultException<TDetail> i FaultException), których klienci często oczekują. W związku z tym, aby zapobiec przechwytywaniu tych bardziej szczegółowych typów wyjątków przez program obsługi ogólnej CommunicationException , przechwyć te wyjątki przed obsługą CommunicationException.

FaultException obiekty są zgłaszane, gdy odbiornik odbiera błąd PROTOKOŁU SOAP, który nie jest oczekiwany lub określony w kontrakcie operacji. Zwykle dzieje się tak, gdy aplikacja jest debugowana, a usługa ma właściwość ustawioną IncludeExceptionDetailInFaults na true.

Uwaga

Podczas implementowania niestandardowych kanałów i elementów powiązań zdecydowanie zaleca się, aby składniki zgłaszały tylko obiekty pochodne lub CommunicationExceptiontylko System.TimeoutException te. W przypadku, gdy składniki zgłaszają wyjątek możliwy do odzyskania, który jest specyficzny dla składnika, opakuj ten wyjątek wewnątrz CommunicationException obiektu.

Aby uzyskać więcej informacji na temat projektowania i używania systemu błędów WCF, zobacz Określanie i obsługa błędów w kontraktach i usługach.

Ważne

Środowisko uruchomieniowe programu WCF nie zgłosi niebezpiecznego CommunicationException elementu do obsługi w momencie opuszczenia środowiska uruchomieniowego programu WCF i wprowadza kod użytkownika.

Konstruktory

CommunicationException()

Inicjuje nowe wystąpienie klasy CommunicationException.

CommunicationException(SerializationInfo, StreamingContext)

Inicjuje CommunicationException nowe wystąpienie klasy przy użyciu określonych informacji o serializacji i obiektów kontekstu.

CommunicationException(String)

Inicjuje CommunicationException nowe wystąpienie klasy przy użyciu określonego komunikatu.

CommunicationException(String, Exception)

Inicjuje CommunicationException nowe wystąpienie klasy przy użyciu określonego komunikatu i wyjątku wewnętrznego.

Właściwości

Data

Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.

(Odziedziczone po Exception)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku.

(Odziedziczone po Exception)
InnerException

Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek.

(Odziedziczone po Exception)
Message

Pobiera komunikat opisujący bieżący wyjątek.

(Odziedziczone po Exception)
Source

Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd.

(Odziedziczone po Exception)
StackTrace

Pobiera reprezentację ciągu natychmiastowych ramek w stosie wywołań.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.

(Odziedziczone po Exception)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBaseException()

Po przesłonięciu w klasie pochodnej funkcja zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)

Po zastąpieniu w klasie pochodnej ustawia SerializationInfo element z informacjami o wyjątku.

(Odziedziczone po Exception)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState
Nieaktualne.

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane o wyjątku.

(Odziedziczone po Exception)

Dotyczy