9

平台:IIS 6、ASP.Net 2.0 (.Net 3.5)、Server 2003。

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

我正在使用 SWFUpload 通过一个不错的进度条完成上传,但这并没有导致问题,因为当我使用指向我的上传接受页面的标准 HTML 表单绕过它时,我得到了完全相同的错误。使用进度条时,上传继续到 100%,然后失败。使用标准形式,行为似乎是相同的。

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

以下是我到目前为止所做更改的摘要:

在 Web.config 中:在 system.web 中添加了这个:

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

在 machine.config 中:在 system.web 中,更改:

<processModel autoConfig="true" />

到:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />

并在 MetaBase.xml 中:更改:

AspMaxRequestEntityAllowed="204800"

到:

AspMaxRequestEntityAllowed="200000000"

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

一切都适用于较小的文件(我已经测试了大约 5.5MB)。我不确定文件大小的限制是多少,但我知道我的限制需要高于 150MB,因为这不是客户端需要上传的最大文件。

任何人都可以帮忙吗?

4

6 回答 6

6

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

注意:要找到全局 ISAPI 过滤器,请右键单击 IIS Admin 中的网站文件夹并单击属性,然后单击 ISAPI 过滤器选项卡。

于 2008-10-15T22:39:30.360 回答
3

(谷歌人的注意事项):

对于 IIS7,将以下内容添加到 web.config(我在上面添加<system.serviceModel>):

<system.webServer>
        <security>
            <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 -->
        </security>
</system.webServer>
于 2011-12-19T21:48:37.813 回答
2

当我们遇到这个问题时,我们不得不根据这篇知识库文章增加缓冲区大小限制:http: //support.microsoft.com/kb/944886/en-us

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

编辑:这是一个可能与您的问题更相关并提供其他选项的链接:
http ://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net .aspx

于 2008-10-15T19:46:27.197 回答
1

404 和缺少 Page_Load:IIS 只能在服务器上完成完整的 POST 后处理请求。因此,如果 POST 失败(由于它的大小),它不能触发页面的事件。

你可以试试 NeatUpload http://www.brettle.com/neatupload。来自手册:“默认情况下,NeatUpload 不直接限制上传的大小。”

于 2008-10-15T20:00:57.450 回答
0

你也可以试试Velodoc XP 版本,它比 NeatUpload 有几个优点,包括它使用 ASP.NET Ajax 扩展。另请参阅Velodoc 网站了解更多信息。

于 2008-11-27T13:47:43.877 回答
0

你说:

但是1536000只有1.5MB?

于 2009-07-28T04:32:00.317 回答