CommunicationException Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- Dziedziczenie
- 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<TDetail> obiekty są zgłaszane na kliencie, gdy błąd protokołu SOAP określony w kontrakcie operacji jest odbierany w odpowiedzi na operację dwukierunkową (czyli metodę z OperationContractAttribute atrybutem z IsOneWay ustawionym
false
na ).
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) |