Asp.net 如何配置IIS以处理真正大的文件上载?

Asp.net 如何配置IIS以处理真正大的文件上载?,asp.net,iis-6,file-upload,Asp.net,Iis 6,File Upload,平台:IIS6,ASP.NET2.0(.NET3.5),Server2003 我正在构建一个应用程序,它接受来自用户的文件,处理它们,并返回结果。使用HTTP POST将文件上载到ASP.Net web表单。应用程序需要一些大文件(数百MB) 我使用SWFUpload通过一个漂亮的进度条来完成上传,但这并不是问题的根源,因为当我使用一个指向上传接受器页面的标准HTML表单绕过它时,我会得到完全相同的错误。使用进度条时,上载将继续100%,然后失败。对于标准表单,行为似乎是相同的 我现在上传一个大

平台:IIS6,ASP.NET2.0(.NET3.5),Server2003

我正在构建一个应用程序,它接受来自用户的文件,处理它们,并返回结果。使用HTTP POST将文件上载到ASP.Net web表单。应用程序需要一些大文件(数百MB)

我使用SWFUpload通过一个漂亮的进度条来完成上传,但这并不是问题的根源,因为当我使用一个指向上传接受器页面的标准HTML表单绕过它时,我会得到完全相同的错误。使用进度条时,上载将继续100%,然后失败。对于标准表单,行为似乎是相同的

我现在上传一个大约150MB的文件时遇到问题。我已经改变了我能找到的所有设置,但仍然没有运气

以下是我迄今为止所做改变的总结:

在Web.config中: 在system.web中添加了以下内容:

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>
致:

当上传失败时,我从IIS得到一个404错误。我的web表单没有开始处理,或者至少没有进入页面加载事件。我在处理程序的开头抛出了一个异常,它根本不会在大文件上执行

对于较小的文件,一切都可以正常工作(我已经测试了大约5.5MB)。我不确定什么文件大小是限制,但我知道我的限制需要高于150MB,因为这不是客户端需要上传的最大文件


有人能帮忙吗?

当我们遇到这个问题时,我们不得不根据这篇KB文章增加缓冲区大小限制:

我知道这提到了ASP,但我相信它也适用于ASP.NET

编辑:这里有一个可能与您的问题更相关的链接,并提供其他选项:

404和缺页加载:只有在服务器上完成POST后,IIS才能处理请求。因此,如果POST失败(由于其大小),它将无法触发页面的事件

你可以试试新的。
手册中写道:“默认情况下,NeatUpload不会直接限制上传的大小。”

Urlscan在所有网站上都是活动的,并且有自己的请求实体长度限制。我不知道Urlscan正在我们的服务器上运行,因为它是一个全局ISAPI过滤器,而不是在我的个人网站上运行

注意:要查找全局ISAPI筛选器,请右键单击IIS管理中的“网站”文件夹,然后单击“属性”,然后单击“ISAPI筛选器”选项卡

您也可以尝试一下,它比NeatUpload有几个优点,包括它使用ASP.NET Ajax扩展。有关更多信息,请参见。

您说:

但1536000只不过是1.5MB?

(谷歌的注意事项):

对于IIS7,将下面的内容添加到web.config(我在上面添加了
):



第一篇文章是关于下载的,不是关于上传的,但我还是尝试了,没有成功。乔恩·加洛韦(Jon Galloway)的文章涵盖了我上面提到的内容。是的,我重新阅读了你的问题,意识到我的第一个链接是不正确的,但我觉得把它全部去掉很奇怪。所以我进一步研究了一下,并将第二个链接作为编辑发布。我希望第二个链接有帮助。这个大小是以KB为单位的,所以它实际上是~1.5GB。
<processModel autoConfig="true" />
<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />
AspMaxRequestEntityAllowed="204800"
AspMaxRequestEntityAllowed="200000000"
<system.webServer>
        <security>
            <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 -->
        </security>
</system.webServer>