Вопрос по file-upload, asp.net-mvc, web-config, maxrequestlength – ограничение размера загрузки файла в ASP.NET MVC: более 1 параметра maxRequestLength в файле web.config (s)

17

Я хотел бы иметь более 1 параметра для maxRequestLength - ограничение размера загрузки файла (например, один для File / New, другой для Picture / New). Все мои действия имеют дополнительные параметры (например, / File / New? FolderId = 234).

Одиночная настройка работает как положено:

<code><httpRuntime executionTimeout="60" maxRequestLength="1024" />
</code>

Я попытался иметь 2 настройки с 2 разделами местоположения в корне web.config, но безуспешно. Я не уверен, что писать в "пути" - физическая страница aspx представления или контроллер + действие ... однако, похоже, ничего не работает.

<code><location path="/File/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="4096" />
    </system.web>
</location>
<location path="/Picture/">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>
</code>

Я попытался поместить другой файл web.config в определенную папку представления (например, / Views / Picture / ...), как будто он работает в классическом Webform ASP.NET, но, похоже, это тоже не помогает ...

<code><location path="">
    <system.web>
        <httpRuntime executionTimeout="60" maxRequestLength="1024" />
    </system.web>
</location>
</code>

Независимо от того, что я делаю, применяется только одно значение для httpRuntime.maxRequestLength - в (root) web.config ... system.web.

Ваш Ответ

3   ответа
0

поскольку в IIS 7 имеется «Фильтрация запросов». настройки ограничены 30 МБ по умолчанию. Вы должны увеличить этот параметр, подробности см. Вмой пост

11
11

что атрибут Path не должен начинаться или заканчиваться символом "/" - так что вы должны иметь:

<location path="File">
  <system.web>
    <httpRuntime executionTimeout="60" maxRequestLength="4096" />
  </system.web>
</location>
<location path="Picture">
  <system.web>
    <httpRuntime executionTimeout="60" maxRequestLength="1024" />
  </system.web>
</location>

Ваш виртуальный или физический каталог уровня Web.config не должен иметь & lt; location & gt; элементы.

Это должно уладить вас.

Документы дляЭлемент местоположения даже есть этот самый пример:

The following code example demonstrates how to set the uploaded file size limit to 128 KB for only the page specified.

<configuration>
  <location path="UploadPage.aspx">
    <system.web>
      <httpRuntime maxRequestLength="128"/>
    </system.web>
  </location>
</configuration>
Вы правы, конечно. Я перепробовал все возможные варианты ("Изображение", "/ Изображение", "Изображение /", "/ Изображение /", "Виды / Изображение" и т. Д.), Но при публикации своего вопроса я выбрал " ; / Picture / & quot ;, что было явно не так. Однако это не сработало по какой-то другой причине. Я реорганизовал код (изменил способ предоставления параметров - теперь как параметры строки запроса), и он начал работать должным образом, но я не совсем уверен, в чем проблема. :-( Спасибо, в любом случае! :-) Alex42

Похожие вопросы