J'ai besoin d'aide pour la configuration .NET HttpWebRequest délai d'attente

Mon objectif est d'obtenir la réponse à partir de jusqu'à 6000 Url dans les plus brefs délais. Il fonctionne très bien (12 secondes pour 5200 LAN Adresses), jusqu'à un certain retard a commencé à se produire.

Mon code utilise jusqu'à 20 simultanée HttpWebRequest.BeginGetResponse avec ThreadPool.RegisterWaitForSingleObject pour la gestion des timeouts.

Cependant, certains (jusqu'à 4 à 5 000 demandes jamais frappé la TimeoutCallback fonction avec le deuxième paramètre (timedOut) vrai, et ils déchets 5 minutes de mon précieux temps jusqu'à ce que ils ont frappé theBeginGetResponseCallback fonction et ensuite élever un WebException. Les exceptions dit quelque chose comme "l'opération a atteint la limite de temps", mais que le message d'exception est en portugais(ma langue maternelle) je ne pouvais pas Google.

Je me demande si je peux réduire ce délai à 20 secondes par exemple. Quelqu'un sait comment? J'ai déjà essayé:

<system.web>
    <httpRuntime executionTimeout="20"/>
</system.web>

Mais comme je suis en cours d'exécution comme une Application Console, ASP.NET les configurations ne fonctionnent pas. Et j'ai aussi essayé:

myHttpWebRequest.Timeout = 20*1000;

Et

ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), AsyncState, 20*1000, true);

Sans succès. Pouvez-vous m'aider?

Mise à jour
Ce que j'essaie de dire, c'est il y a 4 résultats possibles pour une requête HTTP asynchrone:

  1. N'atteignent jamais la fonction de rappel -> timeout fonction de rappel
  2. Atteint et réponses avec succès
  3. Atteint et déclenche une exception
  4. Retard exactement 5 minutes, jusqu'à déclencher une "limite de temps" exception web à l'intérieur de la fonction de rappel

La 4ème possibilité est de retarder mon Application, et je ne sais pas comment faire pour raccourcir ce délai

Mise à jour
Est-il possible que la méthode GetResponseStream au lieu de la GetResponse est qui provoque le délai d'attente?

OriginalL'auteur Jader Dias | 2008-12-22