この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Binding.ReceiveTimeout プロパティ

 

公開日: 2016年11月

アプリケーション メッセージが受信されない間に、接続が非アクティブになってから切断されるまでの時間を取得または設定します。

名前空間:   System.ServiceModel.Channels
アセンブリ:  System.ServiceModel (System.ServiceModel.dll 内)

public TimeSpan ReceiveTimeout { get; set; }

プロパティ値

Type: System.TimeSpan

アプリケーションでメッセージを受信する必要がある、タイムアウトまでの制限時間を指定する TimeSpan 既定値は、10 分です。

Exception Condition
ArgumentOutOfRangeException

値が 0 未満か、または大きすぎます。

信頼できるセッションを使用しているとき、接続を維持するために適用する必要がある非アクティブ タイマーが 2 つあります。 これらの非アクティブ タイマーのいずれかがオフになると、接続が切断されます。

  • 非アクティブ タイマーの 1 つは、信頼できるセッションに対して適用され、InactivityTimeout と呼ばれます。 タイムアウト時間内にアプリケーション メッセージまたはインフラストラクチャ メッセージが受信されない場合、この非アクティブ タイマーが発生します。 インフラストラクチャ メッセージは、アプリケーション データを含んでいるのではなく、接続維持や受信確認など、チャネル スタック内でプロトコルの 1 つのために生成されるメッセージです。

  • もう 1 つの非アクティブ タイマーはサービスに対して適用され、バインドの ReceiveTimeout 設定を使用します。 タイムアウト時間内にアプリケーション メッセージが受信されない場合、この非アクティブ タイマーが発生します。 この値は、たとえばクライアントが少なくとも 1 つのメッセージをサーバーに送信してから、サーバーがセッションで使用するチャネルを閉じるまでの最大時間を指定します。 この動作により、クライアントが長時間にわたってサーバーのリソースを保持することが回避されます。

いずれかの非アクティブ タイマーが発生した場合は接続が切断されるので、InactivityTimeoutReceiveTimeout を超えてからその値を大きくしても、影響はありません。 これらのタイムアウトの既定は両方とも 10 分です。したがって、信頼できるセッションを使用しているときに設定を変えるには、これらの両方の値を大きくする必要があります。

バインドまたはチャネルでトランザクション フローが有効になっている場合は、指定したタイムアウト時間より操作の実行が長くかかる可能性があります。 このような場合は、タイムアウトの時間が経過し、そのためにトランザクションが中止されるため、操作は失敗します。

セキュリティは、セッションで使用されるときに、 ReceiveTimeout 、バインディングの設定値はセッションのタイムアウトとしても使用します。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
3.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: