3

IIS/WAS でホストされている場合、net.msmq 用に構成された WCF サービスは HttpApplication として実行されないことを理解しています。つまり、Global でイベントを取得できません (Application_Start が重要です)。この点で私は正しいですか?

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

私の本当の質問は、非 HTTP WCF サービスの初期化コードの「適切な」場所はどこですか?

特に(適切な場所はものごとに異なる場合があるため):

  • IoC 登録
  • log4net 初期化
  • MSMQ キューがローカルに存在することを確認する (Juval Lowy が WCF の本で提案しているように)

後続の質問: カスタム IServiceBehavior のイベントは、すべての要求で発生しますか、それとも起動時に 1 回だけ発生しますか? ServiceHost.OnOpening() はどうですか - すべてのリクエストまたは起動時に 1 回だけですか? (私のテストでは、それは一度だけですが、どこにも見つからないように見えるため、WCFの「ライフサイクル」が文書化されている場所を知っている人はいますか。)

4

1 に答える 1

1

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

于 2012-02-03T19:05:38.377 に答える