Ini dengan mudah dicapai baik secara terprogram, dalam kode Anda, atau secara deklaratif di web.config atau app.config.
Anda dapat membuat proxy secara terprogram seperti ini:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("[ultimate destination of your request]");
WebProxy myproxy = new WebProxy("[your proxy address]", [your proxy port number]);
myproxy.BypassProxyOnLocal = false;
request.Proxy = myproxy;
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Anda pada dasarnya menempatkan WebProxy
objek ke request
objek proxy
properti. Ini request
kemudian akan menggunakan yang proxy
Anda tentukan.
Untuk mencapai hal yang sama secara deklaratif, Anda dapat melakukan hal berikut:
<system.net>
<defaultProxy>
<proxy
proxyaddress="http://[your proxy address and port number]"
bypassonlocal="false"
/>
</defaultProxy>
</system.net>
dalam web.config atau app.config Anda. Ini menetapkan proxy default yang akan digunakan semua permintaan http. Bergantung pada apa yang ingin Anda capai, Anda mungkin memerlukan atau tidak memerlukan beberapa atribut tambahan dari elemen defaultProxy / proxy , jadi silakan merujuk ke dokumentasi untuk itu.
BypassProxyOnLocal
properti ke True (jika diperlukan) segera setelahnya.Jika Anda menggunakan
WebClient
, ini memiliki properti Proxy yang dapat Anda gunakan.Seperti yang disebutkan orang lain, ada beberapa cara untuk mengotomatiskan deteksi / penggunaan pengaturan proxy
Web.Config:
Penggunaan kelas WebProxy seperti yang dijelaskan di artikel ini .
Anda juga dapat mengonfigurasi pengaturan proxy secara langsung (konfigurasi atau kode) dan aplikasi Anda kemudian akan menggunakannya.
Web.Config:
Kode:
sumber
Coba kode ini. Sebut saja sebelum membuat permintaan http. Kode akan menggunakan proxy dari Pengaturan Internet Explorer Anda - satu hal yang saya gunakan
proxy.Credentials = ....
karena server proxy saya adalah Server Akselerasi Internet yang diautentikasi NTLM. Cobalah.sumber
WebProxy.GetDefaultProxy
sudah usang sejak Framework 4.5 dan metode ini mengembalikan null. Lebih baik pikirkan sebelum menggunakanCredentialCache.DefaultNetworkCredentials
. Jika Anda telah meletakkan sesuatu di CredentialCache dan proxy Anda memerlukan kredensial tersebut, maka itu akan berfungsi. Kalau tidak, itu tidak akan membantu.Jika Anda ingin aplikasi menggunakan proxy default sistem, tambahkan ini ke Application.exe.config Anda (di mana application.exe adalah nama aplikasi Anda):
Detail selengkapnya dapat ditemukan di artikel MSDN di System.Net
sumber
Satu baris ini cocok untuk saya:
CredentialCache.DefaultNetWorkCredentials
adalah setelan proxy yang disetel di Internet Explorer.WebRequest.DefaultWebProxy.Credentials
digunakan untuk semua konektivitas internet di aplikasi.sumber
Kode Foole bekerja dengan sempurna untuk saya, tetapi di .NET 4.0, jangan lupa untuk memeriksa apakah Proxy adalah NULL, yang berarti tidak ada proxy yang dikonfigurasi (di luar lingkungan perusahaan)
Jadi, inilah kode yang memecahkan masalah saya dengan proxy perusahaan kami
sumber
Kode ini berhasil untuk saya:
sumber
Deteksi proxy otomatis adalah proses di mana server proxy Web diidentifikasi oleh sistem dan digunakan untuk mengirim permintaan atas nama klien. Fitur ini juga dikenal sebagai Web Proxy Auto-Discovery (WPAD). Ketika deteksi proxy otomatis diaktifkan, sistem mencoba untuk menemukan skrip konfigurasi proxy yang bertanggung jawab untuk mengembalikan kumpulan proxy yang dapat digunakan untuk permintaan tersebut.
http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx
sumber
sumber
Saya akan menggunakan contoh untuk menambahkan jawaban di atas.
Saya mengalami masalah proxy saat mencoba menginstal paket melalui Penginstal Platform Web
Itu juga menggunakan file konfigurasi yang WebPlatformInstaller.exe.config
Saya mencoba saran edit di forum IIS ini
dan
Tak satu pun dari ini berhasil.
Apa yang berhasil bagi saya adalah ini -
Modul ini harus didaftarkan dengan Penginstal Platform Web agar dapat menggunakannya.
sumber