相关疑难解决方法(0)

使用HttpWebRequest流式传输大型文件时出现内存异常

当使用大文件的Http.Put时,我得到Out of Memory Exception.我正在使用代码中显示的异步模型.我正在尝试将8K数据块发送到Windows 2008 R2服务器.当我尝试写入超过536,868,864字节的数据块时,会始终出现异常.下面的代码片段中的requestStream.Write方法发生异常.

寻找原因?

注意:较小的文件是PUT OK.如果我写入本地FileStream,逻辑也可以工作.在Win 7 Ultimate客户端计算机上运行VS 2010,.Net 4.0.

   HttpWebRequest request = (HttpWebRequest)WebRequest.Create("Http://website/FileServer/filename");
   request.Method = WebRequestMethods.Http.Put;
   request.SendChunked = true;
   request.AllowWriteStreamBuffering = true;
   ...

   request.BeginGetRequestStream( new AsyncCallback(EndGetStreamCallback), state);
   ...

   int chunk = 8192; // other values give same result
   ....

   private static void EndGetStreamCallback(IAsyncResult ar) {
        long limit = 0;
        long fileLength;
        HttpState state = (HttpState)ar.AsyncState;

        Stream requestStream = null;
        // End the asynchronous call to get the request stream.

        try {
            requestStream = state.Request.EndGetRequestStream(ar);
            // Copy …
Run Code Online (Sandbox Code Playgroud)

c# streaming out-of-memory

7
推荐指数
1
解决办法
8205
查看次数

标签 统计

c# ×1

out-of-memory ×1

streaming ×1