Jak odczytać wartość systemową z web.config i użyć metody ASP.NET MVC C #

Pracuję nad aplikacją internetową ASP.NET MVC3 (nie napisaną przeze mnie), która ma maksymalny rozmiar wysyłania 100 MB. Teraz ta aplikacja internetowa jest instalowana na serwerach dla klientów, więc byłoby miło, gdyby ta wartość maksymalnego rozmiaru wysyłania była konfigurowalna dla każdego klienta. W razie potrzeby mają dostęp do edycji web.config dla aplikacji internetowej.

Teraz jest taka wartość w web.config:

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

Również tutaj jest inna wartość, która wydaje się podobna:

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

To 104857600 bajtów wydaje się być limitem wysyłania plików 100 MB. Jednak po zmianie wartości odkryłem, że nie jest to wartość autorytatywna i nie przestrzega nowego limitu. Więc po dalszych kopaniach znalazłem gdzieś w kodzie C # wartość zakodowaną na stałepublic const double MaxContentSize = 104857600 a inna metoda C # używała tej wartości do akceptowania / odrzucania przesyłania plików Ajax.

Tak więc myślę, że chciałbym zastąpić ten zakodowany numer w kodzie, aby odczytał z wartości w web.config. Wtedy przynajmniej każdy może zmienić tę wartość w web.config podczas wdrażania witryny.

Czy możesz zrobić coś takiego?

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

Widziałem kilka przykładów użycia appSettings w web.config, np.

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

a następnie uzyskując do niego dostęp w następujący sposób:

ConfigurationManager.AppSettings["MySetting"]

Ale to oznaczałoby dodanie tam wartości niestandardowej, a teraz będziemy mieli 3 miejsca, aby ją zmienić w web.config. Ktoś wpadł na pomysł, jak to zrobić poprawnie?

Wielkie dzięki

questionAnswers(3)

yourAnswerToTheQuestion