2012-04-20 21 views
0

私は 'GetProduct'や 'UpdateProduct'のようなものを要求するクライアントに役立つWCFサービスを設計しています。さらに、クライアントがPUSH通知を送信するために購読する別のサービスがあります。WPFアプリ経由でWCFサービスを監視する

'PULL'および 'PUSH' WCFサービスは、Windowsサービスで実行されます。

私は、サービスに接続するWPFアプリケーションを開き、両方のサービス(今までと同じと思われる)に数多くのクライアントが接続されていることを示す何らかの監視ソリューションをカプセル化したいクライアントからサービスを切断し、サービスがログに記録したログを表示することができます。

これはサービス側でどのように設計しますか?

「監視」アプリの3番目のサービスを作成する必要があります。要求された場合、「PULL」サービスと「PUSH」サービスに接続されているクライアントの数を確認しますか?

「GetNumOfClients」と「DisconnectClient」という関数を 'PUSH'と 'PULL'サービスに追加するだけですか?これはそこに属していないこれらのサービスにロジックを導入し、クライアント同士が互いに切断することができるので、これは間違っているようです...

答えて

1

log4netまたはhealth monitoringを使用してください。 Log4netは多目的で構成可能です。 WCF diagnosticsログを有効にすることができます。このログには、サービスで何が起こっているかに関する広範な情報があります。WMIプロバイダを使用してサービスをインスツルメントし、どのようなパフォーマンスが得られるかはここにあります。

なぜクライアントを切断する必要がありますか?あなたのメソッドで例外をスローするときにクライアントを「切断する」ことができます。これは、クライアントチャネルの障害ですが、サービス接続の管理には関係しません。

+0

管理者がクライアントをリモートから切断できるようにする必要があります。 –

+0

管理者はどのクライアントを切断するかをどのように判断するのですか? –

+0

管理者は、この「監視」サービスに接続するWPFアプリケーションを実行して、どのクライアントがサービスに接続しているかを通知し、管理者はそのいずれかを切断したり、正確に何をしたのかのログを要求することができますシステム –

関連する問題