existe-t-il un moyen d'obtenir un Par exemple: Dans mon fichier d'hôtes, j'ai: p> lorsque j'essaie de charger Bing dans un navigateur (c'est-à-dire et ff) il ne parvient pas à charger comme prévu. p> De même: p> pourquoi Info supplémentaire: p> EDIT STRORT> P> PER @RICHARD BEIER, j'ai essayé edit 2 strong> p> Ceci s'est avéré être le proxy de la société qui nous donne problèmes. Notre solution était un script de configuration de proxy personnalisé pour nos machines de test qui avaient "Bing.com" point à la place du proxy par défaut. P> p> system.net.webrequest code> ou system.net.webclient code> pour respecter les hôtes code> ou lmhosts code> fichier? System.net.dns < / Code> Respectez le fichier d'hôtes mais system.net.webrequest code> ignorez-le? Que dois-je modifier pour que le fichier WebRequest respecte le fichier hosts? P>
system.net code> traçage. Avec le traçage WebRequest code> échoue comme il le devrait. Cependant, dès que je transformerai le traçage
3 Réponses :
J'utilise VS 2010 sur Windows 7, et je ne peux pas reproduire cela. J'ai fabriqué les mêmes hosts-fichier change et a exécuté le code suivant: J'ai une exception sur la ligne marquée "* * *". Voici les détails de l'exception: P> Activer Traçage système.net p> li>
contourner le problème en utilisant dns.gethostaddresses () pour le résoudre à une adresse IP. Ensuite, mettez la propriété intellectuelle dans l'URL - E.G. " http://10.0.0.1/ ". Ce n'est peut-être pas une option pour vous. P> li>
ul> dans le thread ci-dessus, Mariyaatanasova_msft dit également: "httpwebrequest utilise dns.gethostenry pour résoudre l'hôte, vous pouvez donc avoir un résultat différent de DNS.GETHOSTADDRESSES". P> P>System.Net.WebException was unhandled
Message=Unable to connect to the remote server
Source=System
StackTrace:
at System.Net.HttpWebRequest.GetResponse()
at ConsoleApplication2.Program.Main(String[] args) in c:\Data\Projects\ConsoleApplication2\ConsoleApplication2\Program.cs:line 17
InnerException: System.Net.Sockets.SocketException
Message=A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.0.0.1:80
Source=System
ErrorCode=10060
J'utilise VS2008 et 3.5 SP1. gethostenry code> me donne la même sortie que gethostaddress code>. Je vais regarder dans la traçabilité. Merci.
Tourné sur System.net Traçage selon votre suggestion. Avec le traçage, le WebRequest échoue comme prévu. Avec le traçage, il remonte à de manière inattendue. Les pensées?
C'est très étrange - je n'ai pas de bonne réponse. Hans Passant et Jonathan Stanton ont de bons points concernant les proxies. Mais si IE utilise un proxy et respecte toujours votre fichier d'hôtes, le fichier hosts doit également remplacer le proxy lors de l'utilisation de WebRequest. La seule chose que je peux suggérer est d'essayer de désactiver le proxy de toute façon, comme le suggère de Mwalker. Vous pouvez également essayer un sniffer de paquet tel que Wireshark ou moniteur réseau pour voir ce qui se passe sur le fil - mais je ne suis pas sûr que cela aidera. Si vous voyez une demande DNS pour www.bing.com, cela confirme qu'il n'utilise pas le fichier d'hosts, mais n'explique pas pourquoi.
Je pense que @Hans Passant a repéré le problème ici. Il semble que vous ayez une configuration proxy dans IE.
WebRequest.Create("http://10.0.0.1").GetResponse(); // throws exception (expected)
Vous avez raison que je suis derrière un proxy d'entreprise mais je ne suis pas sûr de suivre votre logique. Je m'attendrais à ce que webrequest.create () code> présenterait un comportement identique à IE, mais ce n'est pas le cas. Bing.com dans IE Times Out essayer de charger 10.0.0.1
Vérifiez le web.config pour vous assurer que la défaillance de la valeur de valeur n'est pas configurée - en supprimant cela, ce qui précède.
Vous devez écraser le proxy par défaut.
Httpwebrequest & Webrequest définira un proxy par défaut si présent dans Internet Explorer et votre fichier try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("www.bing.com");
request.Proxy = new WebProxy();
request.Method = "POST";
request.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
//some code here
}
}
catch (exception e)
{
//Some other code here
}
Je suppose que vous travaillez à travers un proxy sur votre réseau. Que fait votre navigateur?
IE et FF se comportent comme prévu (essayant de charger du serveur indiqué dans le fichier d'hôtes).
Avez-vous essayé
ipconfig / flushdns code>?Oui, et
ipconfig / displaydns code> affiche l'entrée dans le fichier hosts.