7

一部の内部サービスにWindows2008、.NET 3.5、およびWCFを使用するプロジェクトに取り組んでいますが、サービスをホストする方法について疑問が生じています。

Windows 2008を使用しているので、Windowsプロセスアクティベーションサービス(WAS)を利用するのが良いと思っていましたが、プロジェクトではWindowsサービスを使用する方が良いと感じています。

では、Windowsサービスと比較してWASを使用してWCFサービスをホストすることの欠点は何ですか?Windowsサービスを使用することの本当の利点はありますか、それとも進むべき道でしたか?

4

1 に答える 1

11

最近、よく似た質問に答えなければなりませんでした。これが、Windows サービス インフラストラクチャの代わりに IIS 7.0 と WAS を使用することにした理由です。

  1. IIS 7.0 ははるかに堅牢なホストであり、デバッグを容易にする多数の機能が付属しています。失敗したリクエストのトレース、ワーカー プロセスのリサイクル、プロセスの孤立化などがあります。
  2. IIS 7.0 では、特定の状況でワーカー プロセスをどう処理するかを指定するオプションが増えました。
  3. IIS でサービスをホストする場合、最初の要求までワーカー プロセスが割り当てられません。これは私の観点からは望ましい動作でしたが、あなたの場合は異なるかもしれません. Windows サービスを使用すると、より決定論的な方法でサービスを開始できます。
  4. 私の経験から、WAS 自体は信頼性を向上させません。最大の利点は、IIS の豊富な機能を、HTTP 以外のプロトコルを使用するアプリケーションに公開できることです。つまり、TCP、名前付きパイプ、MSMQ です。
  5. 私が認識している WAS 使用の唯一の欠点は、サービスが公開されるアドレスが何らかのパターンに準拠している必要があることです。MSMQ の場合はどのように見えるかについては、こちらで説明しています
于 2008-09-19T00:10:48.830 に答える