1

我正在尝试按照此示例实现用于图像上传的文件 API

http://robertnyman.com/html5/fileapi-upload/fileapi-upload.html

在服务器端,我使用 ASP.NET MVC 3 和 IIS7(集成,仅限 32 位)

使用 Development Server 和 IIS7.5 在本地一切正常。在服务器上它也可以工作,除了如果文件具有一定大小(使用 2.2MB 图像文件),上传似乎可以工作,但响应是 404 页面。我已将 maxRequestLength 配置为 10MB,但即使使用默认的 4MB,它也应该可以工作。

我返回的 404 页面是 IIS7 默认的 404,而不是我的应用程序的 404 页面(通过查看 Fiddler 或 Firebug 中的结果)。我正在捕获所有随机 URL 并显示自定义 404 页面,但在这种情况下,请求似乎没有发送到 ASP.NET 管道(应用程序池设置为集成)。

我还记录了任何可能发生的异常(包括 404)——就这个问题而言,日志很清楚。服务器的事件日志中也没有任何内容。

有任何想法吗?

谢谢!

4

1 回答 1

8

它与 HTML5 File API 或 ASP.NET MVC 无关。

问题是在 IIS7 中您必须指定 maxAllowedContentLength。宣传的默认值为 4MB,但似乎并非如此,因为上传 2MB 文件失败。有趣的是,本地的IIS7.5(Windows 7)似乎没有这个问题——也许在IIS7.5(Windows Server 2008 R2)中已经修复

要修复它,在你的 web.config 中确保你有这样的东西:

<system.webServer>
  ...
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="10485760" />
    </requestFiltering>
  </security>
  ...
</system.webServer>

该值以字节为单位;我指定了 10MB

于 2011-07-14T02:46:05.677 回答