CommunicationException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje chybu komunikace ve službě nebo klientské aplikaci.
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
- Dědičnost
- Dědičnost
- Odvozené
- Atributy
Příklady
Následující příklad kódu ukazuje klienta, který zpracovává CommunicationException typy. Tento klient také zpracovává FaultException objekty, protože služba je nastavena IncludeExceptionDetailInFaults na 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
Poznámky
Robustní klientské aplikace a aplikace WCF (Windows Communication Foundation) zpracovávají CommunicationException objekty, které mohou být vyvolány během komunikace. Existují také dva CommunicationExceptiontypy výjimek odvozené odvozované (FaultException<TDetail> a FaultException), které klienti také často očekávají. Proto, aby se zabránilo obecné CommunicationException obslužné rutině zachytit tyto konkrétnější typy výjimek, zachyťte tyto výjimky před zpracováním CommunicationException.
-
FaultException<TDetail> objekty jsou vyvolány v klientovi, pokud je přijata chyba SOAP, která je zadána v kontraktu operace v reakci na obousměrnou operaci (to znamená metoda s atributem s OperationContractAttributeIsOneWay nastaveným na
false).
FaultException objekty jsou vyvolány, když naslouchací proces obdrží chybu SOAP, která není očekávaná nebo určena v kontraktu operace. K tomu obvykle dochází, když je aplikace laděna a služba má vlastnost nastavena IncludeExceptionDetailInFaults na true.
Poznámka:
Při implementaci vlastních kanálů a vazeb prvků důrazně doporučujeme, aby komponenty házely pouze System.TimeoutException nebo CommunicationExceptionodvozené objekty. V případě, že součásti vyvolá obnovitelnou výjimku, která je specifická pro danou komponentu, zabalte tuto výjimku uvnitř objektu CommunicationException .
Další podrobnosti o návrhu a používání systému selhání WCF naleznete v tématu Určení a zpracování chyb v kontraktech a službách.
Důležité
Modul runtime WCF nevyvolá CommunicationException nebezpečné zpracování v okamžiku, kdy opustí modul runtime WCF a zadá uživatelský kód.
Konstruktory
| Name | Description |
|---|---|
| CommunicationException() |
Inicializuje novou instanci CommunicationException třídy. |
| CommunicationException(SerializationInfo, StreamingContext) |
Inicializuje novou instanci CommunicationException třídy pomocí zadaných serializačních informací a kontextových objektů. |
| CommunicationException(String, Exception) |
Inicializuje novou instanci CommunicationException třídy pomocí zadané zprávy a vnitřní výjimky. |
| CommunicationException(String) |
Inicializuje novou instanci CommunicationException třídy pomocí zadané zprávy. |
Vlastnosti
| Name | Description |
|---|---|
| Data |
Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce. (Zděděno od Exception) |
| HelpLink |
Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce. (Zděděno od Exception) |
| HResult |
Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce. (Zděděno od Exception) |
| InnerException |
Exception Získá instanci, která způsobila aktuální výjimku. (Zděděno od Exception) |
| Message |
Získá zprávu, která popisuje aktuální výjimku. (Zděděno od Exception) |
| Source |
Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu. (Zděděno od Exception) |
| StackTrace |
Získá řetězcové znázornění okamžitých rámců v zásobníku volání. (Zděděno od Exception) |
| TargetSite |
Získá metodu, která vyvolá aktuální výjimku. (Zděděno od Exception) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetBaseException() |
Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek. (Zděděno od Exception) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Při přepsání v odvozené třídě nastaví SerializationInfo s informacemi o výjimce. (Zděděno od Exception) |
| GetType() |
Získá typ modulu runtime aktuální instance. (Zděděno od Exception) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky. (Zděděno od Exception) |
Událost
| Name | Description |
|---|---|
| SerializeObjectState |
Zastaralé.
Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce. (Zděděno od Exception) |