【问题标题】:ASP.NET MVC: Large file upload issueASP.NET MVC:大文件上传问题
【发布时间】:2016-08-05 13:52:45
【问题描述】:

这个问题在多个线程上讨论过,但我仍然无法让它工作。我正在上传一个大小约为 30MB 的文本文件。我正在使用一种经典方法,其中<form> 具有<input type="file"/>,并且表单提交由接受HttpPostedFileBase 参数和[HttpPost] 属性的方法处理。

问题:

  1. 在 Crome 上,它会在大约 2 分钟后发出 ERR_CONNECTION_RESET 消息。
  2. 在 IE 上,它给出以下消息:

    HTTP 错误 404.13 - 未找到 请求过滤模块用于拒绝超过请求内容长度的请求。

  3. 在 Firefox 上上传文件的时间过长(超过 30 分钟)。

我尝试过的解决方案:<httpRuntime> 中设置maxRequestLength="102400" executionTimeout="3600"

我想要什么?

  1. 上传性能应该不错。
  2. 解决方案应该适用于所有浏览器。

我知道,即使我找到了适用于所有浏览器的解决方案,上传也会花费大量时间。是否有任何替代方法可以让我使用更好的应用程序性能?

【问题讨论】:

    标签: c# asp.net asp.net-mvc file-upload


    【解决方案1】:

    您更改了请求长度,但没有更改 IE 建议的内容长度。

    尝试添加

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

    到您的 web.config。

    需要注意的是,maxAllowedContentLength 以字节为单位; 36,700,160 字节应该大约等于 35MB。

    【讨论】:

      【解决方案2】:

      您需要做几件事,首先,您需要更改最大文件上传大小:

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

      其中maxAllowedContentLength 是最大文件大小,以字节

      为单位

      其次,对于这样大小的文件,您可能需要更改请求超时限制,因为上传文件所花费的时间可能会超过默认值(我认为约为 2 分钟):

      <system.web>
          <httpRuntime executionTimeout="300" />
      </system.web>
      

      其中executionTimeout 是以为单位的时间长度

      将这些值更改为您认为适合您的解决方案的值

      【讨论】:

      • 我尝试添加 标签,但在 IE 上出现以下错误:HTTP 错误 500.19 - 内部服务器错误 请求的页面无法访问,因为该页面的相关配置数据无效。
      • 你把security放在system.webServer里面了吗
      猜你喜欢
      • 2014-08-12
      • 2018-12-27
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      • 2010-11-05
      • 2012-08-30
      相关资源
      最近更新 更多