WCF限制来自一个客户端的同时进行的线程数量

时间:2013-02-07 08:31:05

标签: wcf web-services silverlight asmx silverlight-5.0

我已经在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个线程中的一个将无法完成执行,新的一个将无法启动测试方法。超过6个查询从客户端发送(它显示在httpFox中)。什么与限制有关?例如,我们如何将数量从6增加到50?先感谢您。感谢您的帮助。

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

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

Project, vs2010, silverlight 5.0

1 个答案:

答案 0 :(得分:2)

我猜这是关于Silverlight安全限制,它与防止DOS攻击有关。除此之外,它还与浏览器配置有关。每个浏览器都有不同的连接限制,例如6,8,12个呼叫。您可以测试此但不要使用1小时睡眠。 :) 10秒将被检测到。有关详情,请点击this question