CommunicationException Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um erro de comunicação, seja no serviço ou na aplicação cliente.
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
- Herança
- Herança
- Derivado
- Atributos
Exemplos
O exemplo de código seguinte mostra um cliente que gere CommunicationException tipos. Este cliente também gere FaultException objetos porque o serviço tem IncludeExceptionDetailInFaults definido para 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
Observações
Aplicações robustas de Windows Communication Foundation cliente e serviço (WCF) tratam CommunicationException objetos que podem ser lançados durante a comunicação. Existem também dois CommunicationExceptiontipos de exceções derivados de , (FaultException<TDetail> e FaultException), que os clientes frequentemente esperam. Portanto, para evitar que o manipulador genérico CommunicationException apanhe estes tipos de exceções mais específicos, apanhe estas exceções antes do tratamento CommunicationException.
-
FaultException<TDetail> objetos são lançados no cliente quando uma falha SOAP especificada no contrato de operação é recebida em resposta a uma operação bidirecional (ou seja, um método com um OperationContractAttribute atributo definido IsOneWay como
false).
FaultException os objetos são lançados quando um ouvinte recebe uma falha SOAP que não é esperada ou especificada no contrato de operação. Isto normalmente ocorre quando a aplicação está a ser depurada e o serviço tem a IncludeExceptionDetailInFaults propriedade definida para true.
Note
Ao implementar canais personalizados e elementos de ligação, recomenda-se fortemente que os seus componentes lançam apenas System.TimeoutException objetos ou CommunicationExceptionobjetos derivados de -. No caso de os seus componentes lançarem uma exceção recuperável específica para o componente, envolva essa exceção dentro de um CommunicationException objeto.
Para mais detalhes sobre o desenho e utilização do sistema de falhas WCF, consulte Especificação e Tratamento de Falhas em Contratos e Serviços.
Importante
O tempo de execução WCF não lança um CommunicationException que seja inseguro de manusear no ponto em que sai do tempo de execução WCF e entra no código do utilizador.
Construtores
| Name | Description |
|---|---|
| CommunicationException() |
Inicializa uma nova instância da CommunicationException classe. |
| CommunicationException(SerializationInfo, StreamingContext) |
Inicializa uma nova instância da CommunicationException classe, usando a informação de serialização e os objetos de contexto especificados. |
| CommunicationException(String, Exception) |
Inicializa uma nova instância da CommunicationException classe, usando a mensagem especificada e a exceção interna. |
| CommunicationException(String) |
Inicializa uma nova instância da CommunicationException classe, usando a mensagem especificada. |
Propriedades
| Name | Description |
|---|---|
| Data |
Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção. (Herdado de Exception) |
| HelpLink |
Obtém ou define um link para o ficheiro de ajuda associado a esta exceção. (Herdado de Exception) |
| HResult |
Recebe ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica. (Herdado de Exception) |
| InnerException |
Obtém a Exception instância que causou a exceção atual. (Herdado de Exception) |
| Message |
Recebe uma mensagem que descreve a exceção atual. (Herdado de Exception) |
| Source |
Obtém ou define o nome do aplicativo ou o objeto que causa o erro. (Herdado de Exception) |
| StackTrace |
Obtém uma representação string dos frames imediatos na stack de chamadas. (Herdado de Exception) |
| TargetSite |
Obtém o método que lança a exceção atual. (Herdado de Exception) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetBaseException() |
Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes. (Herdado de Exception) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Quando sobreposto numa classe derivada, define a SerializationInfo informação com sobre a exceção. (Herdado de Exception) |
| GetType() |
Obtém o tipo de execução da instância atual. (Herdado de Exception) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Cria e devolve uma representação string da exceção atual. (Herdado de Exception) |
evento
| Name | Description |
|---|---|
| SerializeObjectState |
Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção. (Herdado de Exception) |