J'ai défini à la fois Timeout et ReadWriteTimeout de HttpWebRequest, et toujours GetRequestStream ne expire pas en essayant de se connecter à un serveur inexistant. J'ai rencontré des problèmes similaires dans le passé lorsque la résolution DNS a été atteinte, mais cette fois le serveur en question fonctionne sur ma propre machine (localhost) donc ce n'est pas pertinent.Comment puis-je définir un délai d'attente sur HttpWebRequest.GetRequestStream?
Le scénario est le suivant:
- Je lève mon serveur
- je me connecte avec succès à lui, effectuer un POST et fermer le flux de demande/réponse
- Je tue le serveur
- I essayer de se connecter à nouveau, et s'attendre à ce que je vais frapper le délai que j'ai mis
À ce stade, le thread se bloque. J'ai essayé de définir KeepAlive sur false, mais cela n'a pas aidé. J'ai pensé à exécuter le scénario ci-dessus dans un fil séparé, et si cela prend trop de temps à le tuer moi-même - cependant cette solution est très moche et n'empêchera pas les fuites de ressources.
Bien sûr, je ne sais pas comment j'ai raté celui-ci :) – ripper234