CommunicationException CommunicationException CommunicationException CommunicationException Class

定义

表示服务或客户端应用程序中的通信错误。Represents a communication error in either the service or client application.

public ref class CommunicationException : SystemException
[System.Serializable]
public class CommunicationException : SystemException
type CommunicationException = class
    inherit SystemException
Public Class CommunicationException
Inherits SystemException
继承
CommunicationExceptionCommunicationExceptionCommunicationExceptionCommunicationException
派生
属性

示例

下面的代码示例演示处理 CommunicationException 类型的客户端。The following code example shows a client that handles CommunicationException types. 此客户端也处理 FaultException 对象,因为服务的 IncludeExceptionDetailInFaults 已设置为 trueThis client also handles FaultException objects because the service has IncludeExceptionDetailInFaults set to 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
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

注解

可靠的客户端和服务 Windows Communication Foundation (WCF) 应用程序的句柄CommunicationException进行通信时可能引发的对象。Robust client and service Windows Communication Foundation (WCF) applications handle CommunicationException objects that may be thrown during communication. 有两个客户端通常也会预计到的 CommunicationException 派生的异常类型(FaultException<TDetail>FaultException)。There are also two CommunicationException-derived exception types (FaultException<TDetail> and FaultException) that clients also often expect. 因此,为了防止一般 CommunicationException 处理程序捕获到这些更具体的异常类型,请在处理 CommunicationException 之前捕获这些异常。Therefore, in order to prevent the generic CommunicationException handler from catching these more specific exception types, catch these exceptions prior to handling CommunicationException.

如果侦听器接收到操作协定中不期望或未指定的 SOAP 错误,将会引发 FaultException 对象。FaultException objects are thrown when a listener receives a SOAP fault that is not expected or specified in the operation contract. 通常,如果在调试应用程序时将服务的 IncludeExceptionDetailInFaults 属性设置为 true,就会发生这一情况。This usually occurs when the application is being debugged and the service has the IncludeExceptionDetailInFaults property set to true.

备注

实现自定义通道和绑定元素时,强烈建议你的组件只引发 System.TimeoutExceptionCommunicationException 派生的对象。When implementing custom channels and binding elements, it is strongly recommended that your components throw only System.TimeoutException or CommunicationException-derived objects. 如果您的组件引发了此组件特定的可恢复异常,则将在 CommunicationException 对象内包装该异常。In the case where your components throw a recoverable exception that is specific to the component, wrap that exception inside a CommunicationException object.

有关设计和使用 WCF 错误系统的更多详细信息,请参阅指定和处理在协定和服务中的错误For more details about designing and using the WCF fault system, see Specifying and Handling Faults in Contracts and Services.

重要

WCF 运行时将不会引发CommunicationException这是不安全的点,它会使 WCF 运行时并进入用户代码处理。The WCF Runtime will not throw a CommunicationException that is unsafe to handle at the point where it leaves the WCF Runtime and enters user code.

构造函数

CommunicationException() CommunicationException() CommunicationException() CommunicationException()

初始化 CommunicationException 类的新实例。Initializes a new instance of the CommunicationException class.

CommunicationException(SerializationInfo, StreamingContext) CommunicationException(SerializationInfo, StreamingContext) CommunicationException(SerializationInfo, StreamingContext) CommunicationException(SerializationInfo, StreamingContext)

使用指定的序列化信息和上下文对象初始化 CommunicationException 类的新实例。Initializes a new instance of the CommunicationException class, using the specified serialization information and context objects.

CommunicationException(String) CommunicationException(String) CommunicationException(String) CommunicationException(String)

使用指定的消息初始化 CommunicationException 类的新实例。Initializes a new instance of the CommunicationException class, using the specified message.

CommunicationException(String, Exception) CommunicationException(String, Exception) CommunicationException(String, Exception) CommunicationException(String, Exception)

使用指定的消息和内部异常初始化 CommunicationException 类的新实例。Initializes a new instance of the CommunicationException class, using the specified message and the inner exception.

属性

Data Data Data Data

获取提供有关异常的其他用户定义信息的键/值对集合。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

获取或设置指向与此异常关联的帮助文件链接。Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

获取或设置 HRESULT(一个分配给特定异常的编码数字值)。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

获取导致当前异常的 Exception 实例。Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

获取描述当前异常的消息。Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

获取或设置导致错误的应用程序或对象的名称。Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

获取调用堆栈上的即时框架字符串表示形式。Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

获取引发当前异常的方法。Gets the method that throws the current exception.

(Inherited from Exception)

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根源。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

当在派生类中重写时,用关于异常的信息设置 SerializationInfoWhen overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

获取当前实例的运行时类型。Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

创建并返回当前异常的字符串表示形式。Creates and returns a string representation of the current exception.

(Inherited from Exception)

事件

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

当异常被序列化用来创建包含有关该异常的徐列出数据的异常状态对象时会出现该问题。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

适用于