5

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

问题是 Silverlight 是否有这样的限制。它是否遵循托管网络浏览器的限制?还是它有自己的最大连接限制?

4

3 回答 3

3

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

于 2009-08-18T10:27:54.160 回答
1

SL 将使用浏览器的 http 堆栈来发出请求(在 SL3 中,您可以跳过浏览器本身,但您最终仍将使用仍然受限的 WinINET 等客户端堆栈)。

于 2009-08-18T10:28:57.417 回答
0

根据 RFC 2068:

“使用持久连接的客户端应该限制他们与给定服务器保持的同时连接数。单用户客户端应该与任何服务器或代理保持最多 2 个连接。代理应该使用最多 2*N 个连接到另一个"

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

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

改变的关键是:

MaxConnectionsPer1_0Server MaxConnectionsPerServer

您可以将它们设置为高于默认值的值以增加 Windows 限制。这是特定于操作系统的,并且可能仍然受到浏览器的限制,尽管正如 Anthony 指出的那样,您可以使用 SL3 中的新网络堆栈一起绕过浏览器。

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

于 2009-08-18T14:18:27.580 回答