.Net 4.5.1框架的maxRequestLength

mgs*_*dew 12 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>
Run Code Online (Sandbox Code Playgroud)

Yor*_*rro 16

如果您在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>  
Run Code Online (Sandbox Code Playgroud)

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

错误处理

两者都抛出不同的例外.

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

IIS错误很难调试,因此建议您设置maxAllowedContentLength较大的错误.maxRequestLength因为它在应用程序级别更容易捕获.

资料来源: