Как прочитать системное значение из web.config и использовать в ASP.NET MVC C # метод

Я работаю над веб-приложением 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>

Эти 104857600 байт являются пределом загрузки файла в 100 МБ. Однако, изменив значение, я обнаружил, что это не авторитетное значение и оно не подчиняется новому пределу. Итак, после еще нескольких копаний я обнаружил, что где-то еще в коде C # было жестко закодированное значениеpublic const double MaxContentSize = 104857600 и другой метод C # использовал это значение для принятия / отклонения загрузки файла 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. Кто-нибудь понял, как это сделать правильно?

Большое спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос