我正在尝试上传文件和小文件,但大型文件似乎在2:16之后失败。我所需的Max文件长度大约需要20分钟,而3600小时是一小时。我设置了错误的属性吗?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
<httpRuntime executionTimeout="3600" maxRequestLength="2097151" requestValidationMode="2.0"/>
</system.web>
</configuration>
答案 0 :(得分:1)
通常的问题是收到上传文件的代码会将结果放入一个字节数组(byte [])
这些字节数组完全保存在内存中。根据您的操作系统版本,Web服务器,内存量等,通常大约800MB的内存使用量,IIS将回收工作进程。这样做是为了使整个服务器不会因为单个请求使用过多的内存而停机。
第三方文件上传程序使用各种技术一次流传输一个块文件,并可用于上传多个GB的文件,而不会使内存使用量超过少量千字节。
还必须为触摸文件的所有代码层维护流技术 - 即,如果组件将其写入文件,则必须流和块,而不是在byte []中累积整个内容并写入文件。同样,当代码最终将文件写入DB中的BLOB列时。