【问题标题】:Concurrent Connections with WPF Browser与 WPF 浏览器的并发连接
【发布时间】:2013-01-22 12:09:23
【问题描述】:

我正在尝试针对 SignalR 运行一些测试,以便我们可以在我们的产品中使用它,但首先它需要通过我设置的小负载测试。

iv 所做的是编写了一个小应用程序,它基本上创建了 x 个 WPF 浏览器控件并将它们指向我的机器。这工作正常,所有的 JavaScript 和一切都正常工作。

我的问题是只有 2 个 x 浏览器连接到 Signal R,我看了看,显然它与并发连接有关,所以我尝试设置

  <system.net>
<connectionManagement>
  <add address="*" maxconnection="100" />
</connectionManagement>

但是没用,我也试过了

     ServicePointManager.DefaultConnectionLimit = 200;

那也没解决..

我在这里拉头发,试图让它发挥作用!有任何想法吗?我不能完全用 2 个连接客户端进行负载测试,呵呵!

一些代码;

  private void Create(object o)
    {

        for (int i = 0; i < this.Users; i++)
        {
            StressResult result = new StressResult { BrowserInstance = new WebBrowser(), Id = i };

            this.Results.Add(result);
        }

    }

    private void StartRun(object obj)
    {
        foreach (StressResult result in this.Results)
        {
            result.BrowserInstance.Navigate(this.Target);
        }
    }

首先运行创建以便浏览器可以加载,然后我们最终进行导航。

【问题讨论】:

  • 这听起来确实像ServicePointManager.DefaultConnectionLimit 问题。您确定在进行 任何 连接之前(即在为您的服务器创建 ServicePoint 之前)设置该值吗?

标签: .net wpf webbrowser-control signalr


【解决方案1】:

WPF 浏览器组件很可能是非托管 Internet Explorer 核心 Web 浏览器组件的包装器。 尝试按照说明更改注册表项:

  1. 启动注册表编辑器。
  2. 在注册表中找到以下项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. 在“编辑”菜单上,指向“新建”,单击“DWORD 值”,然后添加以下注册表值: 值名称:MaxConnectionsPer1_0Server
    数值数据:10
    基数:十进制
    值名称:MaxConnectionsPerServer
    数值数据:10
    基数:十进制

有关 Internet Explorer 8 和 9 以及全局密钥以及 GPO,请参阅下面的链接。

此知识库文章对此进行了描述:
How do I configure Internet Explorer to download more than two files at one time?

另外,请参阅:SignalR and Browser Connection limit

【讨论】:

  • 干杯伙伴,在这样做之后我发现了 Crank.. 这比我的要好得多:)
猜你喜欢
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2017-06-15
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多