3

アプリケーションスイートの新しい中間層を開発しています。現在VB6にあり、COM +を介して公開されているため、ビジネスロジックとデータアクセスレイヤーをC#で書き直すことを検討しています。

私たちが決定しようとしているのは、この中間層をさまざまなクライアントが利用できるようにする方法です。これを行うためにWCFを使用し、デスクトップアプリのnetTcpBinding、net.Tcp、名前付きパイプなど、さまざまなクライアントのニーズを促進するためにさまざまなバインディングを使用することにしました。ローカルまたはネットワーク内のマシンで実行されているインターネットアプリのバインディング、および外部WebAPIのHTTPバインディングの一部。

私たちが決定しようとしているのは、サービスをホストする方法です。私が行くほとんどの場所でIISが進むべき道のようですが、Windowsサービスの下にある場合はBLL / DAL部分のパフォーマンスが向上するようで、ここSOの@marc_sはセルフホスティングを頻繁に推奨します。それでは、IIS、サービス、またはHTTPエンドポイントのIISでシンサービスがホストされ、net.tcpまたは名前付きパイプバインディングを介してメインサービスを使用するハイブリッドでホストしますか?分離すると、必要に応じて物理的に分離できるほか、IISがダウンする可能性もあります。これにより、公開するエンドポイントにアクセスするクライアントに対してサービスが実行されたままになります。

また、スケーラビリティと信頼性についてはどうでしょうか。そのように2つのホスティング環境の間に大きな違いはありますか?

これに似た質問がたくさんあることに気づきましたが、探していた情報を十分に見つけることができなかったので、より具体的なヘルプへのリンクが答えと同様に機能します。

4

1 に答える 1

3

この回答を読むと、自分でホストをコーディングする際のオーバーヘッドを受け入れることに基づいて、セルフホスティングがmarc_sの好みであることを示唆しているように思われます。

IIS WCF サービス ホスティングと Windows サービス

IIS は無料で多くの機能を提供します。これを事前に検討することは悪い考えではないと思いますが、パフォーマンス メトリクスを測定して、ソリューションに最適なものについて冷静で確固たる事実を得るよりも優れた方法はありません。

IIS を試してみて、それが本当に悪い場合は、独自のホストを作成してください。IIS で実行するのにそれほど費用はかかりません。また、Web にはチューニングのヒントがいくつかあります。

更新: marc_s がコメントした直後にこれを投稿しました。原則として同意しますが、ホスティングを自分で行うとオーバーヘッドが発生し、何のメリットもありません。IIS は、ある程度すぐに使用できるものであり、制限があります。遭遇することのない制限です。

このフィードバックの関連性はわかりませんが、IIS を使用してアプリケーションの .NET Remoting オブジェクトをホストしています。現在、新しいクライアントによる 10 倍近くのスケールアップに備えて、かなりのパフォーマンス メトリック収集プロセスが進行中です。私たちにとって、IIS は心配する価値のあるものとして識別されていません。人々が抱えている唯一の難点は、それが HTTP (私たちにとっては古い IIS バージョン) を介していることです。そのため、おそらく TCP とは対照的に、もう少しメッセージが重いです。

更新:この MSDN の記事では、セルフホスティングに触れ、考慮すべき点について説明しています。

http://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic3

于 2011-03-15T21:46:26.950 に答える