61

タイムアウトは WCF でどのように機能しますか? たとえば、クライアント バインディングのsendTimeoutreceiveTimeoutを構成できることを知っています。しかし、それらはどのように機能しますか?

MSDN はsendTimeoutを次のように説明しています。

送信操作が完了するまでの時間間隔を指定する TimeSpan 値。この値はゼロ以上である必要があります。デフォルトは 00:01:00 です。

送信操作/受信操作とは何ですか?

4

3 に答える 3

62

クライアント側:

  • SendTimeoutは、OperationTimeoutを初期化するために使用されます。これは、メッセージを送信するための対話全体(要求/応答の場合の応答メッセージの受信を含む)を管理します。このタイムアウトは、CallbackContractメソッドから応答メッセージを送信するときにも適用されます。
  • OpenTimeoutとCloseTimeoutは、チャネルを開いたり閉じたりするときに使用されます(明示的なタイムアウト値が渡されない場合)。
  • ReceiveTimeoutは使用されません。

サーバ側:

  • クライアントの場合と同じように、送信、オープン、およびクローズのタイムアウト(コールバックの場合)。
  • ReceiveTimeoutは、ServiceFrameworkレイヤーがセッションアイドルタイムアウトを初期化するために使用します。

ソースは、MSDNフォーラムのBrianMcNamaraです。

于 2008-10-23T16:51:45.283 に答える
9

「WCF のタイムアウトとその既定値」を参照してくださいhttp://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

バインディングのタイムアウト - SendTimeout、ReceiveTimeout、OpenTimeout、および CloseTimeout。それらは、バインディングの構成またはコードを介して簡単に設定できます。これらのデフォルト値は 1 分です。

ServiceHost には OpenTimeout と CloseTimeout があります。OpenTimeout のデフォルトは 1 分で、CloseTimeout のデフォルトは 10 秒です。

クライアント側チャネルのタイムアウト。チャネルを IContextChannel にキャストすることで設定できる OperationTimeout があります。これのデフォルトも 1 分です。ChannelInitializationTimeout と呼ばれる tcp トランスポートの Ttimeout で、デフォルト値は 5 秒です。

ASPNET。サービス ホストのクローズ タイムアウトと同様に、シャットダウン タイムアウトがあり、デフォルトは 90 秒です。ExecutionTimeout は、操作のタイムアウトと同様に、デフォルトは 110 秒です。

于 2011-10-16T01:58:06.570 に答える
4

その投稿にあったものに加えて、クライアント側で定義された操作タイムアウトもあります。これを参照してください:

http://final-proj.blogspot.com/2009/09/wcf-timeouts.html

于 2009-09-09T20:46:39.347 に答える