RFC では、単一サーバーへの最大 2 つの HTTP 接続の制限を UserAgent に要求していることを知っています。実際、ほとんどのブラウザーには 2 より大きい制限があります。
問題は、Silverlight にそのような制限があるかどうかです。ホスティング Web ブラウザの制限に準拠していますか? または、独自の最大接続制限がありますか?
RFC では、単一サーバーへの最大 2 つの HTTP 接続の制限を UserAgent に要求していることを知っています。実際、ほとんどのブラウザーには 2 より大きい制限があります。
問題は、Silverlight にそのような制限があるかどうかです。ホスティング Web ブラウザの制限に準拠していますか? または、独自の最大接続制限がありますか?
あなたの質問に対する正確な答えはわかりませんが、Silverlight 2 はブラウザーの HTTP スタックを使用しており、おそらくその機能に制限があります。Silverlight 3 では、ブラウザー スタックと新しい Silverlight スタックのどちらかを選択できます。新しいスタックが同じサイトへの 2 つの同時接続に制限されているかどうかはわかりませんが、小さなテスト プログラムを作成することでこれを確認できるはずです。
SL はブラウザーの http スタックを使用して要求を行います (SL3 では、ブラウザー自体をスキップできますが、まだ制限されている WinINET のようなクライアント側のスタックを使用することになります)。
RFC 2068によると:
「持続的接続を使用するクライアントは、特定のサーバーに対して維持する同時接続の数を制限する必要があります。シングルユーザークライアントは、任意のサーバーまたはプロキシとの最大2つの接続を維持する必要があります。プロキシは、別のサーバーに対して最大2*Nの接続を使用する必要があります。サーバーまたはプロキシ。Nは同時にアクティブなユーザーの数です。これらのガイドラインは、HTTP応答時間を改善し、インターネットまたは他のネットワークの輻輳を回避することを目的としています。」
Windowsは確かにオペレーティングシステム全体にこの制限を適用しますが、次の場所にあるレジストリキーを変更することで修正できます。
My Computer \ HKEY_USERS(current user sid)\ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Setting \
変更するキーは次のとおりです。
MaxConnectionsPer1_0Server MaxConnectionsPerServer
それらをデフォルトより上の値に設定して、Windowsの制限を増やすことができます。これはOS固有であり、ブラウザによって制限される可能性がありますが、Anthonyが指摘しているように、SL3の新しいネットワークスタックを使用して、ブラウザをすべて一緒に回避できます。
RFC仕様をうまく試して(それには正当な理由があると確信しています)、サーバーあたりの同時接続数を2つに制限するのは良いことだと思います。さらに必要な場合は、ニーズに適したHTTP以外のプロトコルを探すことができます。