2009-03-27 16 views
3

Ich versuche, einen WCF-Dienst mit zu laden (IIS6/Server2003/BasicHttpBinding). Der Dienst wird gedrosselt wie folgt:Was beschränkt WCF ServiceModelService.Instances?

<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="100" maxConcurrentInstances="100"/> 

Um die Anzahl der Anrufe auf dem Server beurteilen ich die ServiceModelService 3.0.0.0 Leistungsindikatoren bin mit. Wenn ich die maxConcurrentCalls auf 20, 15, 10 oder etwas niedriger drossele, zeigt der Instanzen-Leistungszähler, dass WCF die Drosselung respektiert. Wenn ich jedoch maxConcurrentCalls auf 30 ändere, kann ich Instances nie über 24 hinaus bekommen. Darüber hinaus geht Calls Outstanding nie über 24. Was könnte WCF noch weiter einschränken?

+0

Welche Bindung verwenden Sie? ist Ihr Service Singleton, pro Sitzung, pro Anruf? –

+0

vergiss über die Bindung, ich habe es verpasst. –

Antwort

1

Siehe Why Only Two Concurrent Requests for WCF Load Testing?

Wenn ich diese Frage sah, meine erste Antwort ist, dass: der Client nicht wirklich genug Anfragen an den Server senden. Warum das? Hier sind die Gründe:

1) Wenn Sie die synchrone WCF Httpmodule/Httphandler (installiert von Standard), würden Sie die maximale Anzahl gleichzeitiger Anfragen erhalten (statt durch dass Anzahl der ASP.NET-Arbeits Threads) als 12 * [Anzahl der CPU für die Server].

2) Die WCF-Drosselung ist , wie oben angegeben.

Verwandte Themen