我正在尝试按照此示例实现用于图像上传的文件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页面(通过查看Fiddler或Firebug中的结果)。我正在捕获所有随机URL并显示自定义404页面,但在这种情况下,似乎请求未发送到ASP.NET管道(应用程序池设置为集成)。
我还记录了可能发生的任何异常(包括404) - 就此问题而言,日志是明确的。服务器的事件日志中也没有任何内容。
有什么想法吗?
谢谢!
答案 0 :(得分: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