私はWCF実装を持っており、Windowsサービス内でそれをホストします(自己ホスト型)。私はクライアント側でいくつかのイベントをトリガするためにコールバック契約をinorderで使用します。
質問は、クライアントがコールバックイベントを発生させるためにまだ生きているかどうかを確認したり、確認したりする方法です。チェックメカニズムはありますか?私は.NET 3.5を使用します。
ありがとうございます。クライアントがwcfでコールバックのために生きているかどうかを検出する方法は?
3
A
答えて
0
組み込みの方法はありません。
クライアントがコールバックを処理できない場合、コールバックチャネルの状態に応じてクライアントコールバックを呼び出そうとすると、サービスがハングするか例外がスローされます。
この問題に対する1つの可能な解決策は、同じ問題にhere
0
私のアプローチは、(それはもちろんのいずれでもないImplmentedExceptionをスローしません)コールバックインタフェースを実装する「DefaultCallback」クラスを作成し、何もしないことだったです。 そして、あなたはこのようなコードのビットを書くことができます:だから
private IServiceCallBack[] GetCallBack()
{
var returnValue = new IServiceCallBack[1];
var com = (ICommunicationObject)(returnValue[0] = OperationContext.Current.GetCallbackChannel<IServiceCallBack>());
com.Closing += new EventHandler((object sender, EventArgs e) =>
{
returnValue[0] = new DefaultCallBack();
});
com.Faulted += new EventHandler((object sender, EventArgs e) =>
{
returnValue[0] = new DefaultCallBack();
});
return returnValue;
}
コールバッククライアントが閉じたり、故障した状態にある時はいつでも、それは何もしません準拠したオブジェクトに置き換えられています。
関連する問題
- 1. クライアントが生きているかどうかを知る方法
- 2. WCFサービスがクライアントの切断を検出する方法
- 3. c#wcf別のクライアントからクライアントのコールバックを呼び出す
- 4. NettyサーバーがポートでリッスンしているかどうかをNettyクライアントが検出できるようにするにはどうすればいいですか?
- 5. ソケットがクライアント上で開かれたときを検出する方法は?
- 6. 他のオーディオがバックグラウンドで再生されているかどうかを検出する方法は? (Windows Phone 7)
- 7. iPhone:iTunesが再生されているかどうかを検出するには?
- 8. ストリームがクライアントによって閉じられているかどうかを検出できますか?
- 9. JavaクライアントからWCFまたはウィンドウサービスを呼び出す方法
- 10. ドッカーコンテナがクラッシュしたかどうかを検出する方法
- 11. WCFコールバックはすべてのクライアントを呼び出します
- 12. matplotlib軸に対して双軸が生成されているかどうかを検出する方法
- 13. デバイスでビデオを再生できるかどうかを検出する方法はありますか?
- 14. 私のアプリケーションが閉じているかどうかを検出する方法
- 15. オブジェクトが主にスタックまたはダイナミックメモリで構成されているかどうかを検出する方法
- 16. コールバックでナビゲータポップを検出する方法
- 17. 要素でオーバーフローが発生しているかどうかを検出する
- 18. ビューの準備ができているかどうかを検出する方法は?
- 19. QWebViewでマウスボタンが押されたかどうかを検出する方法は?
- 20. 現在のメジャーモードがprog-modeから派生しているかどうかを検出する方法
- 21. pdfがツールでスキャンまたは生成されたかどうかを検出する方法
- 22. ページがブックマークされたときにクライアント側で検出する方法は?
- 23. iPhone:EKEventインスタンスを変更できるかどうかを検出する方法は?
- 24. Zebraプリンタがインストールされているかどうかを検出する方法
- 25. メディアプレーヤーが動作しているかどうかを検出する方法
- 26. iOSデバイスがHDビデオを再生できるかどうかを検出する
- 27. 通知ではいまたはいいえが押されたかどうかを検出する方法
- 28. WCFサービスがクライアント上のオブジェクトプロパティを検査しないようにすることはできますか?
- 29. Android EditText - SoftKeyによって何かが書かれているかどうかを検出する方法は?
- 30. Apache Thrift:クライアントが生存しているかどうかをサーバー側で確認する方法は?
私は優雅にそれを検出したいと思います。私はそれが例外がスローされる依存するようにしたくない。コールバック契約をICommunicationObjectにキャストして、その状態を確認できますか?それは働くだろうか? – Fer
申し訳ありませんが、その答えは分かりません。 –
ありがとう@hugh。 CallbackContractをICommunicationObjectにキャストし、その状態が開いているかどうかを確認します。ちなみに、より良い解決策が提示されます。 – Fer