Silverlight是否存在任何并发HTTP请求限制?

时间:2009-08-18 10:23:14

标签: silverlight http user-agent

我知道RFC要求UserAgent限制与单个服务器的最大2 http连接。实际上,大多数浏览器的限制都大于2.

问题是Silverlight是否有这样的限制。它是否遵循托管Web浏览器的限制?或者它有自己的最大连接限制吗?

3 个答案:

答案 0 :(得分:3)

我现在不是你问题的确切答案,但Silverlight 2使用的是浏览器HTTP堆栈,可能仅限于它会做什么。在Silverlight 3中,您可以选择浏览器堆栈和新的Silverlight堆栈。我不知道新堆栈是否仅限于同一站点的两个同时连接,但应该可以通过创建一个小型测试程序来检查这一点。

答案 1 :(得分:1)

SL将使用浏览器http堆栈来发出请求(在SL3中你可以跳过浏览器本身,但你仍然会使用像WinINET这样仍然有限的客户端堆栈。)

答案 2 :(得分:0)

根据RFC 2068:

“使用持久连接的客户端应该限制数量    它们维护到给定服务器的同时连接。一个    单用户客户端应该与任何用户保持最多2个连接    服务器或代理。代理应该最多使用2 * N连接到另一个    服务器或代理,其中N是同时活动的数量    用户。这些准则旨在改善HTTP响应时间    并避免互联网或其他网络拥塞。“

Windows当然会在整个操作系统中强制实施此限制,但您可以修复更改位于以下位置的注册表项的问题:

我的电脑\ HKEY_USERS(当前用户sid)\ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Setting \

要改变的关键是:

为MaxConnectionsPer1_0Server MaxConnectionsPerServer的

您可以将它们设置为高于其默认值的值,以增加Windows限制。这虽然是操作系统特定的,但可能仍然受到浏览器的限制,不过安东尼指出你可以使用SL3中的新网络堆栈一起绕过浏览器。

我认为很好地使用RFC规范(我确信它有充分的理由)并且将每个服务器的同时连接数限制为2。如果您需要更多,那么也许您可以寻找除HTTP之外的协议,以更好地满足您的需求。