using (WebResponse response = request.GetResponse())
{
    response.GetResponseStream().CopyTo(destination);
}

Turiet katru veco HttpWebRequest atbildi tvērumā, kas pabeidz tās patēriņu un to atbrīvo. Šeit destination ir lietojumprogrammas rakstāmā izvades plūsma; using bloks atbrīvo WebResponse arī tad, ja kopēšana neizdodas, nepārņemot šīs izvades īpašumtiesības.

Tas, ka viens starpniekservera pieprasījums izdodas un nākamie gaida, var norādīt uz nepabeigtām atbildēm, kas aizņem savienojuma resursus. Tikai WebResponse saņemšana nepabeidz tā pamattekstu. Pieprasījuma taimauts ierobežo gaidīšanu, nevis katras jau iegūtās atbildes dzīves laiku.

Piemērojiet tās pašas īpašumtiesības kļūdām. WebException var pārnēsāt atbildi, ko jūsu kods pārbauda; aizveriet to pēc pārbaudes. Transporta kļūmei var vispār nebūt atbildes.

Atbrīvošana atdod atbildes resursus, bet ne vienmēr sola atkārtoti lietojamus savienojumus. Protokolam, serverim un pamatteksta patēriņam joprojām ir nozīme.

Tas attiecas uz vecā WebRequest steķa uzturēšanu. Jaunākā kodā ievērojiet faktiskā klienta atbildes/plūsmas īpašumtiesības; HttpClient gadījumā turiet atbildes to atbrīvošanas tvērumā, un nošķiriet šo tīrīšanas kļūmi no starpniekservera autentifikācijas vai maršruta izvēles.

Saistītie raksti