0

Je suis en train de créer une application de grattage Web. Il doit racler un site Web complexe avec HttpWebRequests simultanées d'un seul hôte vers un seul serveur Web cible.C# Programmation réseau - HTTPWebRequest Scraping

L'application devrait fonctionner sur Windows Server 2008.

Un seul HttpWebRequest pour les données pourraient prendre de 1 minute à 4 minutes pour terminer (en raison des longues opérations db fonctionnement)

je devrais avoir au moins 100 demandes parallèles au serveur Web cible, mais j'ai remarqué que lorsque j'utilise plus de 2-3 demandes de longue durée j'ai de gros problèmes de performance (demandes de délais d'attente/suspension).

Combien de demandes simultanées puis-je avoir dans ce scénario d'un hôte unique à un seul serveur Web cible? puis-je utiliser Thread Pools dans l'application pour exécuter HttpWebRequests parallèle au serveur? aurai-je des problèmes avec les limites de connexion/requêtes HTTP sortantes par défaut? qu'en est-il des délais d'attente de demande lorsque j'atteins les limites de connexion sortantes? quelle serait la meilleure configuration pour mon scénario?

Toute aide serait appréciée.

Merci

Répondre

1

Par défaut, le protocole HTTP limite l'agent utilisateur à 2 connexions simultanées par HTTP/1.1 server.That est la limite que vous frappez.

Augmenter la limite en fixant

ServicePointManager.DefaultConnectionLimit. 

Vous pouvez également régler par Servicepoint, en mettant

ServicePointManager.GetServicePoint(url).ConnectionLimit