質問

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

MSDNは sendTimeout を次のように説明します:

  

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

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

役に立ちましたか?

解決

クライアント側:

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

サーバー側:

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

ソースは MSDNフォーラムのブライアンマクナマラ

他のヒント

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

  

binding-SendTimeout、ReceiveTimeoutのタイムアウト、   OpenTimeoutおよびCloseTimeout。次のいずれかの方法で簡単に設定できます   バインディングの構成またはコード。それらのデフォルト値は1です   分。

     

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

     

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

     

ASPNET。サービスホストが閉じるように、シャットダウンタイムアウトがあります。   タイムアウト、デフォルトは90秒。 ExecutionTimeout、私たちのように   操作タイムアウト。デフォルトは110秒です。

その投稿にあったものに加えて、クライアントエンドで定義された操作タイムアウトもあります。こちらをご覧ください:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top