0

IIS 内でホストされている WCF サービス クラス内にタイマーを配置することはお勧めできません。これは、有効期間が短いためです。ここでのアドバイスからも、サービスを利用することがその状況に対応する最善の方法のように思えます。

しかし、本番環境で自己ホスト型サービス内でタイマーを使用しようとした人はいますか? クライアントとして機能し、タイマーを使用して現在定期的な操作を行うWindowsサービスがあります。

ほとんどの場合はこれで問題ありませんが、設計の堅牢性が心配です。一部の操作は重要です (金融システムの計算トリガー)。WCF サービスと Windows サービスは 2 つのコンポーネントであるため、両方が実行されていることを確認することは困難です。

重要な操作を WCF サービス内のタイマーに移動した場合、その問題は解決されますが、他に何を気にする必要がありますか?

4

1 に答える 1

0

私の理解が正しければ、あなたの質問は実際には IIS でホストされる WCF サービスに関するものでしたね。

IIS は、WCF サービスが実行されるアプリケーション プールを制御します。これは、IIS がアプリケーション プールとその中のすべてのアプリ/サービスをリサイクルすることを決定する可能性があることを意味します。その後、サービスはクライアントから呼び出されたときにのみ再びアクティブになります。そのため、WCF サービスまたは ASP.NET アプリケーションでのスケジューリングは信頼できません。

もちろん、WCF サービスを自己ホストできる場合は状況が変わります。そうすれば、考慮すべき IIS アプリケーション プールはなく、自由にスケジュールできます。したがって、WCF とスケジューリングの組み合わせが必要な場合は、両方を含む Windows サービスを作成することをお勧めします。

于 2011-07-29T09:13:05.960 に答える