0

クライアントが通信できる WCF サービス (IIS で実行) を作成しています。サーバーから定期的にハートビートをマスターサーバーに送信したいと考えています。

現時点でこれを行う唯一の方法は、ハートビートを送信する 2 つ目の Windows サービスを作成することです。

1 つのサービスだけですべてを完了できるように、元の WCF サービスで定期的にイベントを実行する方法はありますか?

4

2 に答える 2

1

やりたいことは、サーバー プッシュまたは全二重アプローチで実現できます。ただし、ハートビートについては、ここで説明されているように、 WebClientを使用して単純な http ping で回避できます。セルフホスティング (IIS 以外) の場合、 ServiceBase.OnStart/OnStopをオーバーライドし、タイマーを開始/停止して定期的に ping をトリガーすることができます。

ただし、IIS で WCF サービスをホストするということは、通常、サービスが要求ごとにインスタンス化されることを意味するため、永続的な ping を送信するためにぶらぶらしているサービス インスタンスはありません。

マスター サーバーへのハートビートが必要な目的によって異なります。代わりに、マスター サーバーが WCF サービスに対して定期的に要求を実行できるようにできますか?

長時間実行されるサービスが本当に必要な場合は、IIS の代わりに Windows サービスで WCF をホストすることをお勧めします。

于 2013-07-26T22:05:49.953 に答える