Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight是否有任何并发HTTP请求限制?_Silverlight_Http_User Agent - Fatal编程技术网

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

Silverlight是否有任何并发HTTP请求限制?,silverlight,http,user-agent,Silverlight,Http,User Agent,我知道RFC要求UserAgent对单个服务器的http连接限制为最多2个。事实上,大多数浏览器的限制都大于2 问题是Silverlight是否有这样的限制。它是否遵循托管web浏览器的限制?或者它有自己的最大连接限制吗?我现在不知道您的问题的确切答案,但是Silverlight 2使用浏览器HTTP堆栈,并且可能仅限于它将执行的操作。在Silverlight 3中,您可以在浏览器堆栈和新的Silverlight堆栈之间进行选择。我不知道新堆栈是否限制为同时连接到同一站点的两个连接,但应该可以通

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


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

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

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

根据RFC 2068:

“使用持久连接的客户端应限制 它们与给定服务器保持的同步连接。a 单用户客户端最多应与任何 服务器或代理。代理最多应使用2*N个到另一个服务器的连接 服务器或代理,其中N是同时处于活动状态的 这些指南旨在提高HTTP响应时间 并避免互联网或其他网络拥塞。”

Windows当然会在整个操作系统中强制执行此限制,但您可以通过更改位于以下位置的注册表项来解决此问题:

我的计算机\HKEY\U用户(当前用户sid)\Software\Microsoft\Windows\CurrentVersion\Internet设置\

改变的关键是:

MaxConnectionsPer1\u 0服务器 MaxConnectionsPerServer

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


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

我的浏览器一次可以连接40个连接。我可以查看silverlight。这是正确的:在silverlight应用程序中使用默认浏览器HTTP堆栈意味着您将获得更多连接浏览器提供的y并发连接(在较旧的浏览器中通常为2个,在较新的浏览器中通常为6-8个)。使用新的客户端HTTP堆栈始终会提供6个。@KeithMahoney:您应该提供您的注释作为答案,这将是一个非常好的可接受答案的候选答案。