ユーザーがサーバーのハード ドライブに特定のファイルをダウンロードできるようにする単純な VB.NET Web アプリケーションがあります。ただし、これらのファイルの一部は非常に大きく、サイズは最大 1GB です。Web アプリケーションがこれらのファイルを送信しようとすると、アプリケーションがクラップアウトしてSystem.OutOfMemoryException
. いくつかの調査の結果、これはメモリの断片化が原因であるか、ファイル全体に割り当てるのに十分な連続メモリがないことがわかりました。
このエラーの発生を回避する方法はありますか? 私たちのサーバーには、これらの大きなファイルをダウンロードするために割り当てるのに十分な物理メモリが全体的にあります。これは、単にメモリの断片化の問題です (とにかくインターネットで読んだことから)。
参考までに、現在配置されているコードは次のとおりです。
Public Function SendFile(ByVal fileName As String, ByVal contentType As String, ByVal fileLocation As String) As ActionResult
Dim fileBytes as Byte() = New WebClient().DownloadData(fileLocation)
Return File(fileBytes, contentType, fileName)
End Function
... ここfileName
で、 はファイルの名前、contentType
は MIME タイプ、fileLocation
はディスク上の物理的な場所です。
助言がありますか?