Méthodes de service Web XML asynchrones

Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.

Pour améliorer la performance des méthodes de service Web qui appellent des méthodes de longue durée qui bloquent leur thread, vous devez envisager de les exposer comme méthodes de service Web asynchrones. L'implémentation d'une méthode de service Web asynchrone permet à ce thread d'exécuter un autre code lorsqu'il est renvoyé au pool de threads. Le nombre de threads du pool étant limité, cela permet à un thread de plus de s'exécuter, améliorant ainsi la performance globale et l'évolutivité du système.

Pour une explication pas à pas sur la façon de convertir une méthode de service Web en une paire de méthodes conçue pour un accès asynchrone, consultez Comment : créer des méthodes de service Web asynchrones. Pour obtenir un exemple de code supplémentaire, consultez Comment : chaîner des appels asynchrones avec une méthode de service Web.

En général, les méthodes de service Web qui appellent les méthodes exécutant des opérations d'E/S sont de bonnes candidates pour l'implémentation asynchrone. Comme exemple de ces méthodes, on peut citer les méthodes qui communiquent avec d'autres services Web, accèdent à des bases de données distantes, exécutent des E/S réseau et lisent et écrivent dans de grands fichiers. Toutes ces méthodes passent la plupart du temps à s'exécuter sur du matériel, ce qui laisse le thread pour exécuter la méthode de service Web bloquée. Ce thread peut être libéré pour exécuter un autre code si la méthode de service Web est implémentée de façon asynchrone.

Qu'une méthode de service Web soit implémentée de façon asynchrone ou non, les clients peuvent communiquer de façon asynchrone avec elle. La communication asynchrone est exposée aux clients .NET dans la classe proxy générée par l'outil Web Services Description Language (WSDL.EXE), même si une méthode de service Web est implémentée de façon synchrone. La classe proxy contient les méthodes Begin et End pour communiquer de façon asynchrone avec chaque méthode de service Web. Par conséquent, la décision d'implémenter une méthode de service Web de façon asynchrone ou synchrone doit être basée sur la performance.

83bkx91t.note(fr-fr,VS.100).gifRemarque :
L'implémentation d'une méthode de service Web asynchrone n'a aucun impact sur la connexion HTTP entre le client et le serveur qui héberge le service Web. La connexion HTTP n'est ni fermée ni mise en pool.

Voir aussi

Tâches

Comment : créer des méthodes de service Web asynchrones
Comment : chaîner des appels asynchrones avec une méthode de service Web

Concepts

Communications asynchrones avec les services Web XML

Autres ressources

Services Web XML utilisant ASP.NET