3

クライアントへのコールバックを有効にするために wsDualHttpBinding を利用する既存の WCF サービスがあります。パフォーマンスを向上させるために netTcpBinding に移行することを検討していますが、IIS がホストするサービス (現在私たちが享受している「コンフォート ゾーン」) から離れて、それをホストする独自の Windows サービスを持つことにかなり慎重です。これを引き続き IIS 7 でホストできることを望んでいましたが、Win2K8 はしばらくの間実現しません。

WCF サービスをホストするために独自の Windows サービスを作成する場合、どのような点に注意する必要がありますか? ライフタイム管理やリクエスト スロットリングなどは、IIS ホスティングで無料で提供される機能であるため、IIS に面倒な作業を任せずに、自分たちでサービスを効果的にホストする方法も知りたいです。ありがとう!:)

4

2 に答える 2

11

したがって、WAS を使用してホストすることはできないため、いくつかの点に注意する必要があります。

  • サービスがクラッシュした場合、デフォルトでは再起動しません (ただし、これはサービス プロパティで変更できます)。
  • アプリケーション プールがハングしたり大きくなりすぎたりすると、IIS はアプリケーション プールをリサイクルします。同じ種類の信頼性が必要な場合は、これを自分で行う必要があります。
  • サービスを実行するアカウントを作成するか、デフォルト サービスのいずれかを使用する必要があります。SYSTEM として、または管理者アカウントでサービスを実行する誘惑をやめてください。ビルトイン アカウントを使用する場合は、NETWORK SERVICE を使用します。
  • その場でのデバッグが難しくなります。
  • log4net などのエラー ロガーの使用を検討する

9 か月前に顧客のために WCF と Windows サービスの組み合わせを展開したと言いました。それは頻繁に使用され、一度も死んでいません。

Windows サービスでスロットルを要求できます。これは WCF 構成の一部です。デフォルトは非常に低いことに注意してください。これらを増やす必要がある可能性があります。

于 2008-09-26T05:28:09.483 に答える
2

Windows サービス アプリケーション ( http://msdn.microsoft.com/en-us/library/ms734781.aspx ) でホストすることは、良い出発点です。

Vista でサービスをホストできる場合は、Windows プロセス アクティベーション サービス (WAS) も利用できます。WAS は、IIS プロセスのアクティブ化を一般化したもので、HTTP 以外のエンドポイント (TCP、名前付きパイプ、MSMQ) を介してプロセスをアクティブ化するために使用できます。WAS でホストされる WCF の詳細については、http://msdn.microsoft.com/en-us/library/ms733109.aspxを参照してください。WAS をインストールして構成する方法については、http://msdn.microsoft.com/en-us/library/ms731053.aspxを参照してください。

于 2008-09-26T05:05:23.547 に答える