2010-07-14 20 views
1

Je souhaite envoyer plusieurs requêtes HTTP à un serveur, en utilisant le routage si possible, et en utilisant plusieurs connexions TCP. Cependant, HttpWebRequest semble utiliser automatiquement plusieurs connexions si ServicePointManager.DefaultConnectionLimit est supérieur à 1. Je ne peux l'obtenir que si je le mets à 1. Existe-t-il une autre manière de forcer pipelining?Existe-t-il un moyen de forcer pipelining dans HttpWebRequest sans définir ServicePointManager.DefaultConnectionLimit?

Répondre

2

Il n'y a aucun moyen de forcer pipelining en utilisant HttpWebRequest. Toutefois, si le serveur est conforme à la norme 1.1 et que votre méthode de requête est Idempotent, vous pouvez obtenir une probabilité élevée d'utilisation du pipeline si vous utilisez async et que vous envoyez plusieurs demandes au même serveur à la fois. Vous pouvez également utiliser un modèle synchrone avec plusieurs threads. La clé consiste à émettre plus d'une demande à la fois.

+0

Merci pour la confirmation. Synchronous n'est pas génial pour l'évolutivité, mais je suppose que la performance que je reçois avec asynch est assez bonne. – evilfred