J'ai un service compatible duplex dans lequel les clients s'enregistrent pour recevoir des notifications. Dans le même AppPool, j'ai un autre service Web régulier qui est utilisé par les clients pour communiquer avec le serveur. Envoyer quelque chose à ce service Web déclenchera une notification à tous les clients connectés. Tout fonctionne bien jusqu'à 12, 13 ou plus de clients sont connectés. Ensuite, l'abonnement/la réception avec le canal duplex et l'envoi de quelque chose à l'autre service deviennent beaucoup plus lents. J'ai désactivé la compatibilité avec asp.net et je n'ai pas de fichier global.asax dans mon projet de service web qui pourrait déclencher des sessions pour le ralentir.Les services Web ne répondent plus lorsque plusieurs clients sont connectés à l'aide de la liaison duplex d'interrogation
Mes services Web sont hébergés dans IIS7 sur Windows Server 2008. Veuillez noter que mes clients exécutent SL4 mais que les services Web sont hébergés dans .NET 3.5.
Voici quelques extraits de mon fichier web.config:
<bindingExtensions>
<add name="pollingDuplexHttpBinding" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement,System.ServiceModel.PollingDuplex, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </bindingExtensions>
<pollingDuplexHttpBinding>
<binding name="pollingDuplexHttpBindingConfig"/>
</pollingDuplexHttpBinding>
<service name="WcfDuplexService.NotificationService"
behaviorConfiguration="ServiceBehavior">
<!-- Service Endpoints -->
<endpoint address=""
binding="pollingDuplexHttpBinding"
bindingConfiguration="pollingDuplexHttpBindingConfig"
contract="WcfDuplexService.INotificationService"
behaviorConfiguration="ServiceFullEndpointBehavior">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
<!-- Message Service -->
<service name="WcfDuplexService.MessageService"
behaviorConfiguration="ServiceBehavior">
<endpoint binding="customBinding"
bindingNamespace="http://csintra.net/MessageService"
contract="WcfDuplexService.IMessageService"
bindingConfiguration="binaryHttpBinding"
behaviorConfiguration="ServiceFullEndpointBehavior">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceThrottling maxConcurrentCalls="1024" maxConcurrentSessions="1024" maxConcurrentInstances="1024" />
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
Merci à l'avance.
Pouvez-vous ajouter un linkg pour 'Guide de performance du service duplex WCF' sur MSDN? – sll