Я получаю ответ от HttpWebRequest (используя модифицированную версию Оболочки Джеффа Рихтера CCR ), затем проверяю несколько заголовков, чтобы решить, стоит ли продолжить загрузку. Иногда я не могу продолжать, поэтому я вырабатываю response.Close и request.Abort . Нужно ли выдавать GetResponseStream затем, чтобы закрыть поток, или это неявно при вызове response.Close ?
После выдачи GetResponse состояние docs :
Вы должны вызвать метод Close, чтобы закрыть поток и освободить соединение. Невыполнение этого требования может привести к исчерпанию соединений в вашем приложении.
Значит ли это, что если у нас есть ответ, то обязательно получить поток и закрыть его?
Мы наблюдаем некоторые довольно странные проблемы, когда зависшие загрузки в конечном итоге заваливают систему. Это кажется самым сильным кандидатом на утечку ресурсов, но интересно, есть ли у кого-нибудь еще опыт с этой проблемой.
В качестве отступления: безопасно ли дважды GetResponseStream в предположении, что это один и тот же поток?