3

asp.netアプリケーションでwcf-serviceを作成しました。これは、Silverlightアプリケーションもホストし、メソッドは1つだけです。

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つのスレッドのうちの1つは実行を終了しませんが、新しいスレッドは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 に答える