我有一个 ASP.Net MVC 应用程序,允许用户上传图像。当我尝试上传一个非常大的文件 (400MB) 时,出现错误。
我认为我的图像处理代码(自制)效率非常低,因此我决定尝试使用第三方库来处理图像处理部分。
因为我正在使用 TDD,所以我想首先编写一个失败的测试。但是,当我使用相同的大文件测试 Controller 操作时,它能够毫无问题地完成所有图像处理。
我收到的错误是“内存不足”。
我确信我的代码使用的内存可能比它需要的多得多,但我只想知道为什么我的测试通过。
另一个区别是我使用的是 SWFUpload,它没有在测试中使用。这可能是原因吗?
最佳答案
可以在 web.config 或 machine.config 或两者中配置内存限制。
在 web.config 中,该部分是:
<httpRuntime
executionTimeout="3600"
maxRequestLength="102400"
/>
在 machine.config 中,该部分也可以是 httpRunTime 部分,类似于:
<httpRuntime
executionTimeout="90"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
/>
还可以使用 processModel 部分将 aspnet 进程限制为总内存的百分比,请参阅:
http://msdn.microsoft.com/en-us/library/7w2sway1.aspx
我遇到了与您所描述的由这些设置引起的类似问题。
特别是 ProcessModel 内存限制属性。
关于asp.net - ASP.Net 应用程序有内存限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525894/