2009-03-27 6 views
3

Je tente de tester un service WCF avec (IIS6/Server2003/BasicHttpBinding). Le service est étranglé comme suit:Qu'est-ce qui limite WCF ServiceModelService.Instances?

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

Pour évaluer le nombre d'appels sur le serveur que je utilise les compteurs de performance ServiceModelService 3.0.0.0. Si je réduis le maxConcurrentCalls jusqu'à 20, 15, 10 ou n'importe quoi d'autre, le compteur de performance Instances montre que WCF respecte la limitation. Cependant, si je change maxConcurrentCalls à 30, je ne peux jamais obtenir que les Instances dépassent 24. En outre, Calls Outstanding ne dépasse jamais 24. Quoi d'autre pourrait limiter la WCF?

+0

quelle liaison utilisez-vous? est votre service singleton, par session, par appel? –

+0

jamais à propos de la liaison, je l'ai manqué. –

Répondre

1

Voir Why Only Two Concurrent Requests for WCF Load Testing?

Quand je regardais cette question, ma réponse est première que: le client n'a pas vraiment envoyer assez requêtes au serveur . Pourquoi donc? Voici les raisons :

1) Si vous utilisez la WCF synchrone HttpModule/HttpHandler (installé par défaut ), vous obtiendrez le nombre maximal de demandes simultanées (détenue par que nombre de travailleurs ASP.NET threads) as 12 * [Nombre de CPU pour le serveur ].

2) L'étranglement WCF est spécifié ci-dessus.