2016-04-04 29 views
1

Windows 7 SP1.
Etki alanı ağı.
.NET Framework 4.6.1.Neden "(502) Bozuk Ağ Geçidi" hatası oluşuyor?

Tüm Internet tarayıcılarım Internet bağlantıları için proxy ayarlarını yapılandırdı (iyi çalışıyor).

İnternet'ten dosya indirmem gerekiyor. WebClient'u, varsayılan Internet tarayıcısından proxy ayarlarını okuyacak ve mevcut işlemlerin kimlik bilgilerini kullanacak şekilde yapılandırdım ve bu koşulların başarılı bir şekilde karşıdan yükleme için yeterli olmasını bekledim. Ama ben istisna (benim kodumda bakın):

static void Main(string[] args) { 
    String file_name = Path.GetRandomFileName(); 
    String full_path = Environment.ExpandEnvironmentVariables(
     Path.Combine(@"%LocalAppData%\Temp", file_name)); 

    using (WebClient client = new WebClient()) { 
     client.Credentials = CredentialCache.DefaultCredentials; 
     //client.Proxy = WebRequest.GetSystemWebProxy(); 
     var proxyUri = WebRequest.GetSystemWebProxy() 
      .GetProxy(new Uri("https://yadi.sk/i/jPScGsw9qiSXU")); 

     try {      
      client.DownloadFile(proxyUri, full_path); 
     } 
     catch (Exception ex) { 
      // The remote server returned an error: (502) Bad Gateway. 
      Console.WriteLine(ex.Message); 
     } 
    } 
    Console.WriteLine("Press any key for exit."); 
    Console.ReadKey(); 
} 

Neyi yanlış yaptım?

enter image description here

+0

Bu garip, ne yapıyorsanız çalışmalısınız. Talebin gerçekten gönderildiğini görmek için kemancı gibi bir web hata ayıklayıcısını denediniz mi? –

+0

Bunu app.config dosyanıza eklemeyi denediniz mi? http://stackoverflow.com/a/11787116/2330575 –

+0

Kodumu güncelledim (şimdi başka bir hata mesajım var). Daha önce web hata ayıklayıcısını kullandım. Bu her zamanki konsol uygulamasıdır. –

cevap

1

Ardından belirgin URL için vekil almak web isteği proxy URL olarak ayarlamak gerekir.

static void Main(string[] args) { 
    String file_name = Path.GetRandomFileName(); 
    String full_path = Environment.ExpandEnvironmentVariables(
     Path.Combine(@"%LocalAppData%\Temp", file_name)); 

    using (WebClient client = new WebClient()) { 
     client.Credentials = CredentialCache.DefaultCredentials; 
     var proxyUri = WebRequest.GetSystemWebProxy() 
      .GetProxy(new Uri("https://yadi.sk/i/jPScGsw9qiSXU")); 
     client.Proxy = new WebProxy(proxyUri); 
     client.Proxy.Credentials = CredentialCache.DefaultCredentials; 

     try {      
      client.DownloadFile("https://yadi.sk/i/jPScGsw9qiSXU", full_path); 
     } 
     catch (Exception ex) { 
      // The remote server returned an error: (502) Bad Gateway. 
      Console.WriteLine(ex.Message); 
     } 
    } 
    Console.WriteLine("Press any key for exit."); 
    Console.ReadKey(); 
} 

Bu

vekil uri erişmeye çalıştığınız url bağlı olarak farklı olduğu durumda sadece uygulanmaktadır.

+0

Teşekkürler, ama yine aynı problemi aldım. –

+0

Lütfen en son güncelleştirmeyi görün –

+0

'proxyUri',' Uri' örneğidir, ancak 'client.Proxy'' IWebProxy' örneğidir. –

İlgili konular