2012-02-03 8 views
3

net.msmq用に設定されたWCFサービスは、IIS/WASでホストされている場合はHttpApplicationとして実行されないため、グローバル(Application_Startが重要です)でイベントを取得しないことを意味します。私はこの点について訂正していますか?IIS/WASでホストされている非HTTP WCFサービスの初期化コードの適切な場所?

Windows Server AppFabricを使用してサービスを自動起動すると、HTTP経由でサービスがヒットし、Application_Startイベントが発生しますか?もしそうなら、これは信頼できますか?

私はと答えています。質問は、非HTTP WCFサービスの初期化コードの「正しい」場所はどこですか?

特に(右の場所が異なるもののために異なるかもしれないので):

  • のIoC登録MSMQキューがローカルに存在確認
  • log4netの初期
  • (ジュバル・ロウィが彼のWCF帳に示すとおり)

フォローアップ質問:毎回の起動時にカスタムIServiceBehaviorのイベントを実行するか、起動時に1回だけ実行しますか? ServiceHost.OnOpening()について - 毎回の要求か、起動時に一度だけですか? (私のテストはそれが一度だけであることを示していますが、WCFのライフサイクルが文書化されている場所は誰にも分かりません)。

答えて

1

IIS/WASでホストされているWCFサービスApplication_Startをサポートするように構成することはできませんが、必要な作業を行う必要はありません。カスタムServiceHostFactory(WAS用)と組み合わせてカスタムServiceHostを作成することをお勧めします。このアプローチはMSDN articlethis blog postに記載されています。この方法を使用すると、初期化プロセスが同じになるため、IIS/WAS、Windowsサービス、またはコンソールアプリケーションでサービスをホストできます。

関連する問題