HttpWebRequest Yanıtlarını Proxy İstekleri Arasında Serbest Bırakın
Eski HttpWebRequest yanıtlarına net bir yaşam süresi verin; böylece yinelenen proxy istekleri bağlantı kaynaklarını süresiz tutmasın.
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
Her eski HttpWebRequest yanıtını tüketimini bitiren ve serbest bırakan bir kapsamda tutun. Burada destination uygulamanın yazılabilir çıktı akışıdır; using bloğu kopyalama başarısız olsa bile WebResponse'u serbest bırakır ve o çıktının sahipliğini üstlenmez.
Bir proxy isteğinin başarılı olması ve sonrakilerin beklemesi, bağlantı kaynaklarını işgal eden tamamlanmamış yanıtlara işaret edebilir. Yalnızca WebResponse almak gövdesini bitirmez. İstek zaman aşımı bir beklemeyi sınırlar, önceden alınmış her yanıtın ömrünü değil.
Aynı sahipliği hatalara da uygulayın. Bir WebException, kodunuzun incelediği bir yanıt taşıyabilir; incelemeden sonra kapatın. Taşıma hatasında hiç yanıt olmayabilir.
Serbest bırakma yanıtın kaynaklarını geri verir ancak her durumda yeniden kullanılabilir bağlantılar vaat etmez. Protokol, sunucu ve gövde tüketimi hâlâ önemlidir.
Bu, eski WebRequest yığınının bakımıyla ilgilidir. Daha yeni kodda gerçek istemcinin yanıt/akış sahipliğini izleyin; HttpClient için yanıtları serbest bırakma kapsamlarında tutun ve bu temizleme hatasını proxy kimlik doğrulamasından veya yol seçiminden ayrı tanımlayın.