使用经典 ASP 上传文件 - 不能超过 120 KB?

Uploading files with classic ASP - Cant do larger than 120 KB?

这让我发疯。我们最近迁移到了 Amazons EC2 服务,现在我们应用程序中的文件上传(使用 Motobit Huge ASP 上传)对于任何大于 120kb 的文件都会失败。我知道默认限制是 200kb,但如果大于 120,它会失败,错误号为 -2147024893 (0x80070003),根本没有 description/details。我在事件查看器或 IIS 日志中找不到任何可以帮助我指明方向的内容。

我确实在相关站点的 ASP 属性下进入 IIS,并将最大请求实体主体限制从 200000 更改为 400000,但没有任何区别。我什至尝试了 iisreset,并在进行更改后重新启动了服务器,以确保它在无望的绝望中应用。

我尝试了多种不同的文件和文件大小。我能够上传的最大文件是 120KB 的文件。这不是代码问题,因为同样的代码在我的本地机器(IIS 7)上运行没有问题,并且只是按原样从我们的旧服务器复制过来。

编辑:我也尝试了以下但没有结果:

将允许的最大内容长度的请求过滤设置设置为 30000000 (30 Mb)。

手动编辑 web.config 并添加了 requestLimits maxAllowedContentLength="15728640" 和 httpRuntime maxRequestLength="2147483647"

我希望这对以后的人有所帮助,因为我一直在用头撞桌子试图解决这个问题。

此组件的最大内存设置为 128K。任何大于此的文件都不会存储在内存中,而是存储在临时文件夹中。默认的临时文件夹是 C:\Windows\Temp.

罪魁祸首是高级设置下的应用程序池设置。 'Load User Profile' 已设置为真。导致组件尝试使用 C:\Users 中的临时路径,但失败了。有 3 种解决方案:

  1. 设置加载用户配置文件 = False
  2. 在代码中分配临时文件夹 (Form.TempPath = "")
  3. 在 C:\Users 中创建文件夹(使用 response.write form.CheckRequirements)

对于我们的案例,#1 是完美的解决方案。 #2 需要编辑超过 100 个文件,#3 只有在您需要将 #1 设置为 true 时才需要。