2011-07-07 60 views
1

Windowsサービスでホストされている単純なWCFサービスがあります。WCFクライアントチャネル(サービス)が終了したかどうかを確認する方法?

wcfサービスのクライアントが10分以上アイドル状態になっていると、WCFサービスがクライアント側で終了しました[サーバー側ではなく、サーバーサービスはまだ生きています]と私は非常にタイムアウトエラーが発生しました。

私はタイムアウト時間を増やしたくありません。私はちょうど、クライアント側でサービスが終了しているかどうかを知るための紛らわしい方法があるのか​​知りたかったのですか?[APIはこの情報を提供しますか?]その後セッションが終了すると新しいものが作成されます。

ベスト

Psとの願い:クライアント側で私はWCFClientChannel->Sate == CommunicationState::Faultedをチェックし、これが

答えて

1

を働いていない残念ながら、プロキシは、もはや利用可能であることを知らないための唯一の方法は、それを使用しようとすることです。

実際には、サービスがクライアント接続用のリソースを維持するsessionful(NetTcpBindingまたはWSHttpBindingなど)というバインディングを使用しています。クライアントがサービスのreceiveTimeout(デフォルト10分)に指定された時間、サービスと通信しない場合、サーバーはクライアントが戻ってこないと判断し、クライアントのサーバー側のリソースを破棄します。今

クライアントが戻ってくると、「ちょっとその、私は再び」サーバーとして、

ためと障害がコールは、このように、クライアントプロキシを殺す「私はあなたが何を言ってるのか分からない」と言うと言います決定は、それはあなたが以下のいずれかを行うことができ、サービス

に話をしようとしない限り、クライアントが知っている方法はありません、サーバー側を撮影されている:

  1. サーバー上receivetimeoutのを増やす(ただし、ことをちょうどそれを に長くかける
  2. はそれがsessionfulないバインディングを使用)問題をEE(
  3. はサービスがまだそこ
+0

知っているように、クライアントによってごとに数 分呼び出される「ピング」オペレーションを持っている)BasicHttpBindingを言いますRichard Blewettに感謝します。悪いニュース:プロキシがもう使えなくなったことを知る方法はありません。 – Novalis

関連する問題