Lupuskan Respons HttpWebRequest antara Permintaan Proksi
Berikan respons HttpWebRequest lama jangka hayat yang jelas supaya permintaan proksi berulang tidak menahan sumber sambungan tanpa had.
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
Simpan setiap respons HttpWebRequest lama dalam skop yang menyelesaikan penggunaan dan melepaskannya. Di sini destination ialah strim output aplikasi yang boleh ditulis; blok using melepaskan WebResponse walaupun penyalinan gagal, tanpa mengambil alih pemilikan output itu.
Kejayaan satu permintaan proksi dan permintaan seterusnya menunggu boleh menunjukkan respons yang belum selesai menduduki sumber sambungan. Menerima WebResponse sahaja tidak menyelesaikan badannya. Had masa permintaan mengehadkan penantian, bukan jangka hayat setiap respons yang telah diperoleh.
Gunakan pemilikan yang sama pada ralat. WebException boleh membawa respons yang diperiksa oleh kod anda; tutupnya selepas pemeriksaan. Kegagalan pengangkutan mungkin langsung tiada respons.
Pelupusan memulangkan sumber respons tetapi tidak menjanjikan sambungan boleh guna semula dalam setiap kes. Protokol, pelayan dan penggunaan badan masih penting.
Ini berkaitan penyelenggaraan tindanan WebRequest lama. Dalam kod yang lebih baharu, ikut pemilikan respons/strim klien sebenar; untuk HttpClient, simpan respons dalam skop pelupusannya, dan bezakan kegagalan pembersihan ini daripada pengesahan proksi atau pemilihan laluan.