Bu kodu .NET 3.5 ile kullanıyorum ve "Uzak sunucu bir hata verdi: (407) Proxy Kimlik Doğrulaması Gerekiyor." Bu çizgisi .NET 3.5 için değil iken vekil kimlik geçmek yeterlidir olarakUzak sunucu hata verdi: (407) Proxy Kimlik Doğrulaması Gerekli
using (WebClient client = new WebClient())
{
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
try
{
string webPageStr = client.DownloadString(URL);
Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine("FAIL");
Console.WriteLine(ex.Message);
}
}
Ancak bu kod .NET 4.0 ile sorunsuz çalışır.
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
Bu nedenle, bu sorunu çözmek için başka birçok yolu denedim ama bunların hiçbiri çalışır:
1)
WebRequest.DefaultWebProxy.Credentials = new NetworkCredential(user, password, domain);
2) Yeni oluştur vekil nesne
ile CredentialCache.DefaultCredentials hattını değiştirinIWebProxy proxy = new WebProxy(proxyUrl, port);
proxy.Credentials = new NetworkCredential(user, pass, domain);
client.Proxy = proxy;
client.Credentials = new NetworkCredential(user, pass, domain);
3) Bu satırı ekleyin
client.UseDefaultCredentials = true;
4) WebClient yerine HttpWebRequest kullanın ve yukarıdaki her yordamı yineleyin. Bu örnek koddur.
HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Proxy = WebRequest.DefaultWebProxy;
webRequest.Credentials = new NetworkCredential(user, pass, domain);
webRequest.Proxy.Credentials = new NetworkCredential(user, pass, domain);
try
{
webRequest.GetResponse();
Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine("FAIL");
Console.WriteLine(ex.Message);
}
.NET 3.5 kullanmak zorunda olduğum için çıkmaz bir çıkma noktasına gelmiş gibi hissediyorum. Bilmediğim bu iki .NET sürümü arasında fark olmalı. Şimdiden çok teşekkür ederim.
Bir 3.5 çözüm buldunuz mu? Aynı şey ile koşuyorum, 4.0 güncelleme sadece seçenek gibi görünüyor. –