3

我在 asp.net 应用程序中创建了 wcf-service,它也托管了 silverlight 应用程序,它只有一种方法:

public void TestMethod(int idRequest)
    {
                System.Diagnostics.Debug.WriteLine(idRequest);
                System.Threading.Thread.Sleep(new TimeSpan(1, 0, 0));
    }

我通过按下按钮从 silverlight 应用程序异步激活此方法:

 private static int countRequest = 0;

    private void Button_Click(object sender, RoutedEventArgs e)
    {
                countRequest++;

                WCFServiceManager.WCFServiceClient serviceRef = new WCFServiceManager.WCFServiceClient();
                serviceRef.TestMethodAsync(countRequest);
    }

只能激活该方法 6 次(我查看 VS,窗口输出),其他查询在该行中,而 6 个线程中的一个不会完成其执行,新的一个不会在 TestMethod 中启动。客户端发送了超过 6 个查询(显示在 httpFox 中)。与限制有什么关系?例如,我们如何将数量从 6 增加到 50?先感谢您。我感谢您的帮助。

WS 2010,窗口输出:imageshack.us/a/img580/1416/outputqn.png

HttpFox:imageshack.us/a/img546/6461/httpfox.png

项目,vs2010,silverlight 5.0

4

1 回答 1

2

我想这是关于与防止 DOS 攻击有关的 Silverlight 安全限制。除此之外,它还与浏览器配置有关。每个浏览器都有不同的连接限制,例如 6、8、12 次调用。您可以对此进行测试,但不要使用 1 小时睡眠。:) 10 秒就足以检测到。另请关注此问题以获取更多信息。

于 2013-02-26T12:52:05.747 回答