加载大于40MB的流时出现EPPLus错误

时间:2017-02-14 13:32:45

标签: c# asp.net-mvc excel epplus epplus-4

我在C#MVC上使用EPPlus将excel文件加载到内存中。 我正在从文件上传中获取流:

model.File.InputStream

并将其传递给ExcelPackage.Load()方法。

它适用于文件< 40 MB。但对于较大的文件,我收到错误:

  

类型' System.Runtime.InteropServices.COMException'的例外情况发生在EPPlus.dll中但未在用户代码中处理

     

附加信息:写入操作期间发生磁盘错误。 (HRESULT异常:0x8003001D(STG_E_WRITEFAULT))

enter image description here

1 个答案:

答案 0 :(得分:1)

将项目切换为x64解决了问题!

  • 如果您在IIS上使用此功能,则必须将池设置为在x64上运行。
  • 在IIS Express上,您必须Enable x64 bit version