HttpClient下文件下载时内存溢出问题
先给大家说声谢谢!dotnet版本4.6.1,下面我来描述我遇到的问题:
HttpMessageHandler handler = new HttpClientHandler() { AllowAutoRedirect = false };
HttpClient client = new HttpClient(handler);
//client.MaxResponseContentBufferSize = 1024 * 1024 * 4;
Task<HttpResponseMessage> resultTask = client.GetAsync(url);
HttpResponseMessage httpResponse = resultTask.Result;
httpResponseMessage = httpResponse;
Stream st = httpResponse.Content.ReadAsStreamAsync().Result;
revLen= st.Read(buffer,0, (int)st.Length);
st.Close();
st.Dispose();
client.Dispose();
我有以上这么一段代码,当这段代码循环执行时会出现IIS内存暴涨,最终导致报错(内存溢出错误)。我确保传入的参数buffer数组只有2M,而且只new了一次,请问这个什么问题呢?如果我把这段代码换成以下代码,这个问题就不存在了:下面这段代码依旧循环调用
WebClient webClient = new WebClient();
byte[] data= webClient.DownloadData(url);
Array.Copy(data,0,buffer,0,data.Length);