.Net 4.5.1框架的maxRequestLength

时间:2014-04-27 18:34:53

标签: asp.net-mvc

我想将.Net framework 4.0代码转换为.Net framework 4.5。这基本上是与文件上传相关的代码。现在我面临一些问题。 maxRequestLength的最大值是多少? 我已在 web.config文件中添加此行,但它不起作用且错误代码为 0x800700b7

<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout ="3600" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880"/>
</authentication>
<pages>
  <namespaces>
    <add namespace="System.Web.Helpers"/>
    <add namespace="System.Web.Mvc"/>
    <add namespace="System.Web.Mvc.Ajax"/>
    <add namespace="System.Web.Mvc.Html"/>
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing"/>
    <add namespace="System.Web.WebPages"/>
  </namespaces>
  </pages>
  <compilation debug="true"/>
  </system.web>
  <system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>

   <security>  
  <requestFiltering>  
     <requestLimits maxAllowedContentLength="104857600" />  
  </requestFiltering>  
  </security> 

<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"/>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." />
</handlers>

1 个答案:

答案 0 :(得分:11)

如果您在IIS中托管,则需要两个设置:

  • maxRequestLength - 对于ASP.net(以KB为单位)
  • maxAllowedContentLength - 适用于IIS(以字节为单位)

示例配置:(这是100MB上传限制)

<configuration>  
    <system.web>  
        <httpRuntime maxRequestLength="102400" executionTimeout="3600" />  
    </system.web>  
</configuration>
<system.webServer>  
   <security>  
      <requestFiltering>  
         <requestLimits maxAllowedContentLength="104857600" />  
      </requestFiltering>  
   </security>  
 </system.webServer>  

两者中较小的一个优先。对于IIS,默认值为4MB。

错误处理

两者都抛出不同的例外。

  • maxRequestLength - 每当文件超过此设置时,您将收到Application_Error(标准ASP错误)
  • maxAllowedContentLength - 每当文件超过此设置时,您将收到IIS错误。

IIS错误更难调试,因此建议您将maxAllowedContentLength设置得更大。从应用程序级别开始,maxRequestLength更容易被捕获。

<强>来源: