Système.Net.WebException: La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur une recevoir
Je suis en train de créer une méthode en C# pour retourner une chaîne de html des pages web de contenu à partir de l'url. J'ai essayé de plusieurs façons différentes, mais j'obtiens l'erreur Système.Net.WebException: La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur une recevoir.
Le suivant fonctionne très bien en local, mais obtient l'erreur ci-dessus lors de l'exécution sur un serveur distant:
public static string WebPageRead(string url)
{
string result = String.Empty;
WebResponse response = null;
StreamReader reader = null;
try
{
if (!String.IsNullOrEmpty(url))
{
HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
result = reader.ReadToEnd();
}
}
catch (Exception exc)
{
throw exc;
}
finally
{
if (reader != null)
{
reader.Close();
}
if (response != null)
{
response.Close();
}
}
return result;
}
- Juste pour être sûr, la problématique de l'URL peut être demandé à l'aide d'un navigateur web ou un autre client HTTP? Est-il, par hasard, un proxy pour Internet Explorer ou ne le serveur distant exiger l'authentification NTLM?
Vous devez vous connecter pour publier un commentaire.
Ce n'est probablement pas le problème, mais essayez ce qui suit:
Je fais écho à la précédente réponse qui suggère que vous essayez cela avec une URL. Je vais ajouter que vous devriez essayer cela avec une bonne HTTP 1.1 URL, en commentant la ligne qui définit la version 1.0. Si cela fonctionne, puis il se rétrécit vers le bas considérablement.
Merci pour les réponses, le problème était dû à un problème de DNS sur le serveur distant! Juste pour confirmer, je suis allé avec le code suivant à la fin:
Eu un problème comme ça avant, qui a été résolu par l'ouverture de l'url à-dire sur la machine avec le problème. IE vous demande alors si vous souhaitez ajouter l'url à la liste des sites sécurisés. Ajouter et il travaille pour cette url.
Ceci est juste l'une des causes possibles. Sérieusement beaucoup d'autres problèmes peuvent en être la cause. Outre le problème décrit ci-dessus, le meilleur moyen que j'ai trouvé pour résoudre ce problème est la juste attraper l'exception et réessayer la demande.