CommunicationException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サービスまたはクライアント アプリケーションでの通信エラーを表します。
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
- 継承
- 継承
- 派生
- 属性
例
次のコード例では、CommunicationException を処理するクライアントを示します。 このクライアントは、サービスの FaultException が IncludeExceptionDetailInFaults に設定されているため、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) アプリケーションは、通信中にスローされる可能性があるオブジェクトを処理CommunicationExceptionします。 さらに、CommunicationException から派生する 2 種類の例外 (FaultException<TDetail> と FaultException) があり、これらはクライアントでも発生することがあります。 したがって、ジェネリックな CommunicationException ハンドラーでより限定された種類の例外をキャッチすることを避けるために、CommunicationException を処理する前にこれらの例外をキャッチします。
- FaultException<TDetail>オブジェクトは、操作コントラクトで指定された SOAP エラーが双方向操作 (つまり、属性IsOneWayが設定
false
されたメソッドOperationContractAttribute) に応答して受信されると、クライアントでスローされます。
FaultException オブジェクトは、操作コントラクトで予期されない、または指定されていない SOAP エラーをリスナーが受け取ったときにスローされます。 通常、これは、アプリケーションのデバッグ中に、サービスの IncludeExceptionDetailInFaults プロパティに true
が設定されている場合に発生します。
注意
カスタム チャネルとバインディング要素を実装するときは、作成するコンポーネントで System.TimeoutException または CommunicationException の派生オブジェクトだけがスローされることを強くお勧めします。 コンポーネントが、コンポーネントに固有の回復可能例外をスローする場合は、その例外を CommunicationException オブジェクトの中にラップしてください。
WCF 障害システムの設計と使用の詳細については、「 コントラクトとサービスでの障害の指定と処理」を参照してください。
重要
WCF ランタイムは、WCF ランタイムを離れ、ユーザー コードを入力した時点で安全でないオブジェクトをスロー CommunicationException しません。
コンストラクター
CommunicationException() |
CommunicationException クラスの新しいインスタンスを初期化します。 |
CommunicationException(SerializationInfo, StreamingContext) |
シリアル化情報とコンテキスト オブジェクトを指定して、CommunicationException クラスの新しいインスタンスを初期化します。 |
CommunicationException(String) |
指定したメッセージを使用して、CommunicationException クラスの新しいインスタンスを初期化します。 |
CommunicationException(String, Exception) |
指定したメッセージと内部例外を使用して、CommunicationException クラスの新しいインスタンスを初期化します。 |
プロパティ
Data |
例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。 (継承元 Exception) |
HelpLink |
この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。 (継承元 Exception) |
HResult |
特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。 (継承元 Exception) |
InnerException |
現在の例外の原因となる Exception インスタンスを取得します。 (継承元 Exception) |
Message |
現在の例外を説明するメッセージを取得します。 (継承元 Exception) |
Source |
エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。 (継承元 Exception) |
StackTrace |
呼び出し履歴で直前のフレームの文字列形式を取得します。 (継承元 Exception) |
TargetSite |
現在の例外がスローされたメソッドを取得します。 (継承元 Exception) |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetBaseException() |
派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。 (継承元 Exception) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。 (継承元 Exception) |
GetType() |
現在のインスタンスのランタイム型を取得します。 (継承元 Exception) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
現在の例外の文字列形式を作成して返します。 (継承元 Exception) |
events
SerializeObjectState |
互換性のために残されています。
例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。 (継承元 Exception) |