我正在开发一个 ASP.NET MVC3 Web 应用程序(不是我编写的),其最大上传大小为 100MB。现在,此 Web 应用程序已安装在客户的服务器计算机上,因此如果可以为每个客户配置此值最大上传大小,那就太好了。如果需要,他们可以编辑 Web 应用程序的 web.config。
现在 web.config 中有一个值,如下所示:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
这里还有另一个看起来相似的值:
<system.web>
<httpRuntime maxRequestLength="104857600" executionTimeout="360" />
</system.web>
104857600 字节似乎是 100MB 文件上传限制。然而,在更改该值时,我发现这不是权威值,并且它不遵守新的限制。因此,经过更多挖掘后,我发现 C# 代码中的其他地方是一个硬编码值public const double MaxContentSize = 104857600
另一种 C# 方法是使用该值接受/拒绝 Ajax 文件上传。
所以我想我想做的是替换代码中的硬编码数字,以便它从 web.config 中的值读取。那么至少任何人都可以在部署网站时更改 web.config 中的该值。
你能做这样的事情吗?
MaxContentSize = ConfigurationManager.systemWeb.httpRuntime['maxRequestLength'];
我在 web.config 中看到了一些使用 appSettings 的示例,例如
<appSettings><add key="MySetting" value="104857600" /></appSettings>
然后像这样访问它:
ConfigurationManager.AppSettings["MySetting"]
但这意味着要在其中添加自定义值,现在我们在 web.config 中有 3 个位置可以更改它。有人知道如何正确地做到这一点吗?
非常感谢