CommunicationException クラス

定義

サービスまたはクライアント アプリケーションでの通信エラーを表します。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
継承
CommunicationException
派生
属性

次のコード例では、CommunicationException を処理するクライアントを示します。The following code example shows a client that handles CommunicationException types. このクライアントは、サービスの FaultExceptionIncludeExceptionDetailInFaults に設定されているため、true オブジェクトも処理します。This 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.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) アプリケーションは、通信中にスローされる可能性のある @no__t 0 のオブジェクトを処理します。Robust client and service Windows Communication Foundation (WCF) applications handle CommunicationException objects that may be thrown during communication. さらに、CommunicationException から派生する 2 種類の例外 (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.

  • FaultException<TDetail> オブジェクトは、操作コントラクト内に指定された SOAP エラーが、双方向操作 (つまり、OperationContractAttributeIsOneWay が設定されている false 属性を持つメソッド) への応答で受信された場合に、クライアント上でスローされます。FaultException<TDetail> objects are thrown on the client when a SOAP fault that is specified in the operation contract is received in response to a two-way operation (that is, a method with an OperationContractAttribute attribute with IsOneWay set to false).

FaultException オブジェクトは、リスナーが予想外の SOAP エラーを受信した場合、または操作コントラクト内に指定されていない SOAP エラーを受信した場合にスローされます。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.TimeoutException または CommunicationException の派生オブジェクトだけがスローされることを強くお勧めします。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 ランタイムは、WCF ランタイムから離れた時点で処理するのが安全ではなく、ユーザーコードを入力する @no__t 0 をスローしません。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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommunicationException class.

CommunicationException(SerializationInfo, StreamingContext)

シリアル化情報とコンテキスト オブジェクトを指定して、CommunicationException クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommunicationException class, using the specified serialization information and context objects.

CommunicationException(String)

指定したメッセージを使用して、CommunicationException クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommunicationException class, using the specified message.

CommunicationException(String, Exception)

指定したメッセージと内部例外を使用して、CommunicationException クラスの新しいインスタンスを初期化します。Initializes a new instance of the CommunicationException class, using the specified message and the inner exception.

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キー/値ペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)
Message

現在の例外を説明するメッセージを取得します。Gets a message that describes the current exception.

(継承元 Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の主要な原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(継承元 Exception)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)

適用対象