我正在开发一个最大上传大小为 100MB 的 ASP.NET MVC3 Web 应用程序(不是我编写的)。现在这个 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 个地方可以更改它。任何人都知道如何正确地做到这一点?
非常感谢