0

起動時に(カスタムServiceHostFactoryを介して)登録サービスを呼び出すwcfサービスがいくつかあります。これらのすべてのサービス (登録サービスを含む) は、同じアプリ プールで実行されています。すべてのサービスを自動起動するために appfabric をインストールしました。詳細な設定はすべて説明しませんが (まだ必要ではないと思うため)、要するに、サービスは net.tcp バインディングを使用し、Windows 7 上の IIS 7.5 で実行されています。

問題: すべてのサービスを自動開始するように設定すると、1 つの (ランダムな) サービスで開始され、このサービスは登録サービスに接続しようとします。しかし、どういうわけかこの登録サービスは起動しません。すべてのサービスを順次開始したいようです。

(望ましくない)解決策1:登録サービスを独自のアプリプールに入れると、すべてが正常に機能し、すべてのサービスが数秒でオンラインになり、登録されます。

(望ましくない) 解決策 2: 自動開始を無効にして、iisreset の後にいずれかのサービスにアクセスしようとすると、すべて正常に動作します。サービスは自分自身を登録しようとし、順番に登録サービスが開始されます。

私はappfabricが初めてなので、単純な構成の問題かもしれません。奇妙なことに、自動起動では機能しませんが、手動起動では問題なく機能するようです。

何か案は?

4

1 に答える 1

1

AppFabric Auto Start 機能に優先度はありません。あるサービスが常に他のサービスよりも先に開始されるとは限りません。また、それらがすべて同時に開始されるとは想定できません。

特定のシナリオでは、WCF 4.0 Discovery and Announcementを使用することをお勧めします。アナウンス機能により、サービスは (Hello および Bye アナウンスを送信することにより) 可用性をアナウンスできますが、ディスカバリー機能により、クライアントは実行時にサービス アドレスを検出できます。

すべてのサービスが同じサーバー上にありますか? namedPipeBinding を使用することが適切である可能性があります。

于 2013-07-09T11:51:19.100 に答える