大きなファイルをWebアプリケーションからアップロードし、後で処理するためのメモリストリームにしようとしています。 HttpPostedFileBaseの入力ストリームを新しいMemoryStreamにコピーしようとしたときにOutOfMemory例外を受け取りました。MemoryStream - 空き領域を割り当てようとしたときのOutOfMemoryException
MemoryStream memStream = new MemoryStream(935700000);
でもこれを行うことでSystem.OutOfMemoryExceptionに、その結果:トラブルシューティング時には、私はそうは次のようにだけ、のInputStream(935638275)の長さ(約)新しいのMemoryStreamを作成し、同じ量の空間を割り当ててみましたこの行
私はわずかにMemoryStreamsを理解していますが、これはMemoryStreamsがデータをどのようにバッファリングするかと関係しているようです。あまりにも大騒ぎすることなく、すべてのデータを1つのMemoryStreamにまとめる方法はありますか?
なぜメモリストリームですか?後でそれを処理する場合は、一時フォルダにコピーしないでください。このような大きなデータをメモリに格納すると(ファイルに800MBのメモリを割り当てることになります)、私の意見では良い設計の決定ではなく、犯罪ではありません。 –
このような大きな連続したメモリのチャンクを割り当てることは、ジッタ強制を削除した場合にのみ実行できます。プロジェクト>プロパティ>ビルドタブを選択し、「32ビット優先」チェックボックスをオフにします。 –