【发布时间】:2013-04-16 12:36:35
【问题描述】:
我一直在尝试使用 System.Net.Http.HttpClient 发布一个更大的文件 (+1GB),但它会引发 SystemOutOfMemory 异常:
at System.Net.ScatterGatherBuffers.AllocateMemoryChunk(Int32 newSize)
at System.Net.ScatterGatherBuffers..ctor(Int64 totalSize)
at System.Net.ConnectStream.EnableWriteBuffering()
at System.Net.HttpWebRequest.SetRequestSubmitDone(ConnectStream submitStream)
at System.Net.Connection.CompleteStartRequest(Boolean onSubmitThread, HttpWebRequest request, TriState needReConnect)
at System.Net.Connection.SubmitRequest(HttpWebRequest request, Boolean forcedsubmit)
at System.Net.ServicePoint.SubmitRequest(HttpWebRequest request, String connName)
at System.Net.HttpWebRequest.SubmitRequest(ServicePoint servicePoint)
at System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state)
at System.Net.Http.HttpClientHandler.StartGettingRequestStream(RequestState state)
at System.Net.Http.HttpClientHandler.PrepareAndStartContentUpload(RequestState state)
显然,HttpWebRequest 出现了类似的问题,如下所述:http://support.microsoft.com/kb/908573。
有没有办法将底层网络请求的AllowWriteStreamBuffering设置为false?我找不到。
干杯,
【问题讨论】:
标签: .net httpclient out-of-memory