CommunicationException Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un errore di comunicazione in un'applicazione lato server o lato client.
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
- Ereditarietà
- Ereditarietà
- Derivato
- Attributi
Esempio
Nell'esempio di codice seguente viene mostrato un client che gestisce le eccezioni di tipo CommunicationException. Poiché la proprietà FaultException del servizio è impostata su IncludeExceptionDetailInFaults, questo client gestisce anche gli oggetti 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
Commenti
Le applicazioni client e servizi affidabili Windows Communication Foundation (WCF) gestiscono CommunicationException oggetti che possono essere generati durante la comunicazione. Esistono inoltre due tipi di eccezione derivati dall'eccezione CommunicationException (ovvero FaultException<TDetail> e FaultException) e che i client rilevano con frequenza. Pertanto, per evitare che il gestore delle eccezioni più generiche CommunicationException rilevi queste eccezioni più specifiche, queste devono essere rilevate prima di gestire l'eccezione CommunicationException.
- FaultException<TDetail> Gli oggetti vengono generati nel client quando viene ricevuto un errore SOAP specificato nel contratto dell'operazione in risposta a un'operazione bidirezionale, ovvero un metodo con un OperationContractAttribute attributo con IsOneWay impostato su
false
.
FaultException Gli oggetti vengono generati quando un listener riceve un errore SOAP non previsto o specificato nel contratto dell'operazione. Ciò in genere si verifica durante il debug dell'applicazione quando la proprietà IncludeExceptionDetailInFaults del servizio è impostata su true
.
Nota
Quando si implementano canali personalizzati ed elementi di associazione, è consigliabile che i componenti utilizzati generino solo eccezioni System.TimeoutException oppure oggetti derivati da eccezioni CommunicationException. Qualora ogni componente utilizzato generi un'eccezione reversibile specifica, eseguirne il wrapping in un oggetto CommunicationException.
Per altre informazioni sulla progettazione e sull'uso del sistema di errore WCF, vedere Impostazione e gestione degli errori in Contratti e servizi.
Importante
Il runtime WCF non genera un'eccezione CommunicationException che non è sicura da gestire nel punto in cui esce dal runtime WCF e immette il codice utente.
Costruttori
CommunicationException() |
Inizializza una nuova istanza della classe CommunicationException. |
CommunicationException(SerializationInfo, StreamingContext) |
Consente di inizializzare una nuova istanza della classe CommunicationException utilizzando gli oggetti specificati relativi alle informazioni e al contesto di serializzazione. |
CommunicationException(String) |
Consente di inizializzare una nuova istanza della classe CommunicationException utilizzando il messaggio specificato. |
CommunicationException(String, Exception) |
Consente di inizializzare una nuova istanza della classe CommunicationException utilizzando il messaggio e l'eccezione interna specificati. |
Proprietà
Data |
Ottiene una raccolta di coppie chiave/valore che forniscono informazioni definite dall'utente aggiuntive sull'eccezione. (Ereditato da Exception) |
HelpLink |
Ottiene o imposta un collegamento al file della Guida associato all'eccezione. (Ereditato da Exception) |
HResult |
Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato a un'eccezione specifica. (Ereditato da Exception) |
InnerException |
Ottiene l'istanza di Exception che ha causato l'eccezione corrente. (Ereditato da Exception) |
Message |
Ottiene un messaggio che descrive l'eccezione corrente. (Ereditato da Exception) |
Source |
Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore. (Ereditato da Exception) |
StackTrace |
Ottiene una rappresentazione di stringa dei frame immediati nello stack di chiamate. (Ereditato da Exception) |
TargetSite |
Ottiene il metodo che genera l'eccezione corrente. (Ereditato da Exception) |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetBaseException() |
Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive. (Ereditato da Exception) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Quando ne viene eseguito l'override in una classe derivata, imposta il controllo SerializationInfo con le informazioni sull'eccezione. (Ereditato da Exception) |
GetType() |
Ottiene il tipo di runtime dell'istanza corrente. (Ereditato da Exception) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Crea e restituisce una rappresentazione di stringa dell'eccezione corrente. (Ereditato da Exception) |
Eventi
SerializeObjectState |
Obsoleta.
Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione. (Ereditato da Exception) |