Sto creando uno strumento di test per sollecitare il caricamento di un server. Creo molti thread diversi che inviano richieste separate al server. Sembra essere limitato dal ChannelFactory. E 'colli di bottiglia sul rendere la chiamata servizio effettivo, ad esempio:Canale di connessione massima CanalFactory
_proxy.MyServiceCall(...);
che ho provato diversi approcci:
- utilizzando un unico ChannelFactory statica condivisa da tutti i thread
- Creazione di un nuovo canale fabbrica per thread
- la creazione di un nuovo stabilimento di canale per chiamata
Tutto questi risultati in prestazioni abbastanza simili. Sembra che ci sia un pool statico globale di connessioni disponibili utilizzate dalla fabbrica di canali. Ho provato a cercare questo ma non ho trovato nulla. Vuoi saperne di più su questo? Pensi che la mia ipotesi di un pool statico di connessioni sia corretta? Se sì, sai come sarebbe configurabile?
Questa è la configurazione corrente per l'applicazione di test:
<configuration>
<system.serviceModel>
<client>
<endpoint binding="wsHttpBinding" bindingConfiguration="SynchronizationServiceBinding" contract="My.Namespace.ISynchronizationService" name="ClientBinding">
</endpoint>
</client>
<bindings>
<wsHttpBinding>
<binding name="SynchronizationServiceBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="10485760">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
<reliableSession enabled="false"/>
<readerQuotas maxArrayLength="1000000"/>
</binding>
</wsHttpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>
Avete [throttling] (http://msdn.microsoft.com/en-us/library/ms735114%28v=vs.90%29.aspx) configurato? – oleksii
Non ho accesso alla configurazione del server, ma so per certo che il server è in grado di elaborare molte più chiamate, quindi lo strumento di test è attualmente in grado di inviare in modo che il limite sia da qualche parte sullo strumento di test. Ho aggiunto la configurazione per lo strumento di test. – kazvictor