2009-04-02 18 views
7

私の会社では、.NET Fx 3.5とC#を使用してプロキシサーバーを作成しています。私たちのresearchから、私はHttpListenerがなぜプロキシサーバーの良い候補者ではないのか分かりました。C#のHTTPプロキシサーバー

私たちは現在、Mentalis proxy example source codeで作業していますが、これには、とりわけ、独自のロギングとパフォーマンスカウンターの実装が含まれます。 HttpListenerを使用すると、Http.sysがラップされます。このHttp.sysは、私たちが必要とするパフォーマンス統計をいくつか提供します。

なぜ、HttpListenerはHTTPプロキシの処理に悪い候補ですか?

(そして、はい、私たちが書いたり、同様ICAPサーバを設定することで、イカ3.1を検討している。)

答えて

4

HttpListenerをはシンプル HTTPサーバのための主要なビルディングブロックを提供するために、.NETです。シンプルなところは、高い稼働率をサポートしていないということです

通常、HTTPプロキシは、多くの同時接続をサポートし、プロキシの機能(プロキシの種類によって異なる)を提供するために、非常に低いオーバーヘッドである必要があります。

プロキシは)RFC 2616 §8.1.3に詳述されているとは不可能であることがすぐに一つのアイテムを提供して(私が正しくHttpListenerをを理解している場合)こと:

プロキシサーバは、(そのクライアントとオリジンサーバとは別に、永続的な接続を通知しなければなりませんまたは他のプロキシサーバー)に接続します。各永続的な接続は、1つのトランスポートリンクにのみ適用されます。

+1

IISはhttp.sysを使用していませんか?私はそれがプロキシサーバーとして使用するのが悪いのはどうしたらいいのですか? –

+0

Http.sysはHTTPサーバーを作成するためのもので、HTTPプロキシは別のものを呼び出すHTTPサーバーではありません。 MSDN(IIRC)の「単純な」ケースのためのHttpListenerについての注釈です。 – Richard

2

また、nginxのWindowsポートが数日前にリリースされたと考えるかもしれません。イカとワニスの経験を持つ多くのサイトは、nginxに変換した後に非常に満足しています。それでは、最近MSがISA Serverを呼び出しているものは何でもあります。

今すぐMentalisコードを見に行きました:D

関連する問題