HTTP proxy sunucusu aracılığıyla bir Web hizmeti kullanan bir .NET istemcisinde hata oluşuyor
Bu makale, http ara sunucusu aracılığıyla bir Web hizmetini kullanmak için bir .NET istemcisi kullandığınızda bir hatanın (Temel alınan bağlantı kapatıldı: Uzak ad çözümlenemedi) oluşması sorununu çözmenize yardımcı olur.
Orijinal ürün sürümü: .NET Framework
Özgün KB numarası: 318140
Belirtiler
HTTP proxy sunucusu aracılığıyla bir Web hizmeti kullanmak için bir .NET istemcisi kullandığınızda, aşağıdaki hata iletisini alabilirsiniz:
Temel alınan bağlantı kapatıldı: Uzak ad çözümlenemedi.
Neden
Web hizmeti ile .NET istemcisi arasında bir HTTP proxy sunucusu var ve uygun ara sunucu ayarları yapılandırılmadı.
Çözüm
Bu sorunu çözmek için .NET istemcisine uygun ara sunucu yapılandırma ayarlarını sağlayın.
Machine.config dosyasındaki varsayılan ayarlar şunlardır:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Varsayılan ayarlar ara sunucu ayarlarını otomatik olarak algılamazsa false olarak ayarlayın usessystemdefault
ve proxy sunucusunu açıkça belirtin. Proxy sunucusunu açıkça belirtmek için Machine.config veya Web.config dosyasını kullanın ya da sunucuyu program aracılığıyla belirtin.
Proxy sunucusunu belirtmek için Machine.config veya Web.config dosya ayarlarını aşağıdaki gibi ayarlayın:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>
Bir nesne kullanarak WebProxy
ayarları program aracılığıyla değiştirmek için aşağıdaki örnek kodu kullanın:
using System.Net;
com.someserver.somewebservice.someclass MyWebServiceClass = new com.someserver.somewebservice.someclass ();
IWebProxy proxyObject = new WebProxy ("http://myproxyserver:80", true);
MyWebServiceClass.Proxy = proxyObject;
MyWebServiceClass.MyWebMethod ();
NTLM kimlik doğrulaması gerektiren ara sunucu
Ara sunucu için Windows NT LAN Manager (NTLM) kimlik doğrulamasını ayarlamak için aşağıdaki örnek kodu kullanın:
using System.Net;
WebProxy myProxy = new WebProxy ("http://proxyserver:port", true);
myProxy.Credentials = CredentialCache.DefaultCredentials;
FindServiceSoap myFindService = new FindServiceSoap ();
myFindService.Proxy = myProxy;
Varsayılan olarak sistem genelinde ara sunucuyu da kullanabilirsiniz. Bunu yapmak için yapılandırma dosyasında aşağıdaki ayarları kullanın:
<configuration>
<system.net>
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Başvurular
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin