Como ler o valor do sistema a partir do web.config e usar no método ASP.NET MVC C #

Eu estou trabalhando em um aplicativo da web asp.net MVC3 (não escrito por mim), que tem um tamanho máximo de upload de 100MB. Agora, esse aplicativo da web é instalado em máquinas servidor para os clientes, portanto, seria interessante se esse valor de upload máximo fosse configurável para cada cliente. Eles têm acesso para editar o web.config para o aplicativo da Web, se necessário.

Agora há um valor no web.config assim:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="104857600" />
        </requestFiltering>
    </security>
</system.webServer>

Também há outro valor aqui que parece ser semelhante:

<system.web>
    <httpRuntime maxRequestLength="104857600" executionTimeout="360" />
</system.web>

Que 104857600 bytes parece ser o limite de upload de arquivo de 100MB. No entanto, ao alterar o valor, descobri que esse não é o valor autorizado e não estava obedecendo ao novo limite. Então, depois de mais algumas escavações eu encontrei em outro lugar no código C # era um valor codificadopublic const double MaxContentSize = 104857600 e outro método C # estava usando esse valor para aceitar / negar o upload do arquivo Ajax.

Então, o que eu acho que gostaria de fazer é substituir esse número codificado no código para que ele leia o valor no web.config. Então, pelo menos, qualquer pessoa pode alterar esse valor no web.config ao implantar o site.

Você pode fazer algo assim?

MaxContentSize = ConfigurationManager.systemWeb.httpRuntime['maxRequestLength'];

Eu vi alguns exemplos usando appSettings no web.config, e.

<appSettings><add key="MySetting" value="104857600" /></appSettings>

em seguida, acessando-o como:

ConfigurationManager.AppSettings["MySetting"]

Mas isso significaria adicionar um valor personalizado lá e agora teríamos 3 locais para alterá-lo no web.config. Alguém tem uma idéia de como fazê-lo corretamente?

Muito Obrigado

questionAnswers(3)

yourAnswerToTheQuestion