我想将.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>
答案 0 :(得分:11)
如果您在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
更容易被捕获。
<强>来源:强>