Memuat modul proksi khusus di .NET Framework
Periksa pemuatan jenis, konfigurasi executable, dan penimpaan permintaan saat modul defaultProxy tampaknya tidak berpengaruh.
Untuk aplikasi .NET Framework, daftarkan modul proksi di bawah configuration/system.net/defaultProxy:
<defaultProxy>
<module type="Company.Network.RoutingProxy, Company.Network" />
</defaultProxy>Nama pertama adalah jenis dan yang kedua identitas assembly, bukan jalur DLL. Assembly dan dependensi harus dimuat menurut aturan normal aplikasi.
Periksa dua gerbang. Pertama, runtime harus membuat jenis publik yang mengimplementasikan IWebProxy melalui konstruktor tanpa parameter. Simpan pengecualian dalam dari kegagalan pemuatan atau konstruksi; itu mendahului koneksi TCP proksi apa pun. Untuk rilis desktop, pastikan pendaftaran mencapai konfigurasi executable yang diterapkan. Dengan ClickOnce, bandingkan .exe.config yang dibangun, diterbitkan, dan dipasang. App.config pustaka kelas biasanya tidak mengonfigurasi proses hostnya.
Kedua, permintaan harus menggunakan default tersebut. Penetapan proksi eksplisit dapat menggantikannya, dan tumpukan HTTP lain mungkin tidak membaca model konfigurasi ini. Di dalam modul, GetProxy dan IsBypassed memerlukan keputusan yang konsisten, dengan URI proksi absolut yang menggunakan skema dan port yang benar.
Buat perilaku kredensial konsisten juga. Getter yang membuat akun hardcoded sambil mengabaikan setter-nya dapat menggagalkan konfigurasi berikutnya bahkan setelah pemuatan berhasil.
Ini adalah mekanisme pemeliharaan untuk .NET Framework. Gunakan konfigurasi proksi yang didukung klien jaringan di .NET saat ini alih-alih mengharapkan pendaftaran system.net lama ini mengatur setiap HttpClient.