ASP.Net应用程序是否有内存限制?

我有一个ASP.Net MVC应用程序,允许用户上传图像.当我尝试上传一个非常大的文件(400MB)时,我收到一个错误.

我认为我的图像处理代码(家庭酿造)非常低效,所以我决定尝试使用第三方库来处理图像处理部分.

因为我正在使用TDD,所以我想先写一个失败的测试.但是当我使用相同的大文件测试控制器动作时,它能够毫无困难地完成所有图像处理.

我得到的错误是“内存不足”.

我确定我的代码可能使用了比它需要的更多的内存,但我只是想知道为什么我的测试通过了.

另一个区别是我使用的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 memorylimit属性.

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR&#160;ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...