Я работаю над веб-приложением ASP.NET MVC3 (не написанное мной), которое имеет максимальный размер загрузки 100 МБ. Теперь это веб-приложение устанавливается на серверные машины для клиентов, поэтому было бы неплохо, если бы этот максимальный размер загрузки был настроен для каждого клиента. У них есть доступ к редактированию web.config для веб-приложения, если это необходимо.
Теперь в файле web.config есть значение:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
Также здесь есть другое значение, которое выглядит похоже:
<system.web>
<httpRuntime maxRequestLength="104857600" executionTimeout="360" />
</system.web>
То, что 1024857600 байтов является пределом загрузки файлов в 100 Мбайт. Однако при изменении значения я обнаружил, что это не авторитетная ценность, и она не подчиняется новому пределу. Поэтому после некоторого дополнительного копания, которое я нашел где-то еще в коде С#, было твердое значение public const double MaxContentSize = 104857600
, а другой метод С# использовал это значение для принятия/отказа в загрузке файла Ajax.
Так что я думаю, что я хотел бы сделать, это заменить этот код в коде, чтобы он читал значение в файле web.config. Тогда, по крайней мере, любой может изменить это значение в web.config при развертывании веб-сайта.
Можете ли вы сделать что-то подобное?
MaxContentSize = ConfigurationManager.systemWeb.httpRuntime['maxRequestLength'];
Я видел несколько примеров, используя appSettings в файле web.config.
<appSettings><add key="MySetting" value="104857600" /></appSettings>
затем обращаясь к нему так:
ConfigurationManager.AppSettings["MySetting"]
Но это означало бы добавление в него настраиваемого значения, и теперь у нас было бы 3 места, чтобы изменить его в файле web.config. Кто-нибудь понял, как это сделать правильно?
Большое спасибо