2010-11-29 2 views
1

J'ai essayé d'utiliser WebRequest.GetResponse() sur ma machine de développement (XP) et cela fonctionne correctement et je peux lire le flux de réponse de l'URL, mais le compilé le code échoue sur deux ordinateurs clients (Windows 7) lorsque l'URL est identique. Le WebException.Status est "La demande de réseau n'est pas prise en charge." Pourquoi cela se produirait-il si on essayait d'accéder à la même URL? L'exception WebException est déclenchée par la méthode GetResponse. Dans la clause catch, l'objet de réponse et les objets WebException.Response sont tous les deux null. Que puis-je faire pour diagnostiquer davantage le problème?Webrequest.GetResponse() fonctionne sur machine de développement, pas sur les machines client

WebRequest request = null; 
HttpWebResponse response = null; 
Stream dataStream = null; 
StreamReader reader = null; 
String responseFromServer = string.Empty; 
string http = string.Empty; 
int timeOut = 30000; 
string errorMsg = string.Empty; 
http = this.URLstring; 
bool error = false; 

try 
{ 
    request = System.Net.WebRequest.Create(http); 
    request.Timeout = timeOut; 
    response = (System.Net.HttpWebResponse)request.GetResponse(); 
} 
catch (System.Net.WebException wex) 
{ 
    error = true; 
    errorMsg = wex.Message + " " + wex.Status.ToString(); 

    if (wex.Response != null) 
    { 
     WebHeaderCollection hdrs = wex.Response.Headers; 

     for (int i = 0; i < hdrs.Count; i++) 
      errorMsg += Environment.NewLine + hdrs.Keys[i] + ", " + hdrs[i]; 
    } 
} 

// Code to read the response stream goes here. it works on development machine. 
+2

Veuillez mettre en retrait votre code - c'est tellement plus facile à lire :) –

+0

L'utilisation du mot-clé est aussi une bonne idée –

+0

La publication du texte (complet) d'erreur pourrait vous aider. –

Répondre

2

Cela pourrait être un problème. Pour tester cela, exécutez l'application sous Win7 'En tant qu'administrateur'

Questions connexes