net maxallowedcontentlength disablerequestsizelimit asp.net-mvc file-upload web-config maxrequestlength

asp.net-mvc - maxallowedcontentlength - disablerequestsizelimit



limitación de carga del tamaño de archivo en ASP.NET MVC: más de 1 configuración de maxRequestLength en web.config(s) (3)

Creo que el atributo Ruta no debería comenzar ni terminar con una "/", por lo que debería tener:

<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>

Los Web.configs de nivel de directorio virtual o físico no deberían tener los elementos <location>.

Eso debería arreglarte.

Los documentos para el elemento Ubicación incluso tienen este mismo ejemplo:

El siguiente ejemplo de código muestra cómo establecer el límite de tamaño de archivo cargado en 128 KB solo para la página especificada.

<configuration> <location path="UploadPage.aspx"> <system.web> <httpRuntime maxRequestLength="128"/> </system.web> </location> </configuration>

Me gustaría tener más de 1 configuración para maxRequestLength - limitación de carga del tamaño del archivo (por ejemplo, una para Archivo / Nuevo, otra para Imagen / Nuevo). Todas mis Acciones toman parámetros adicionales (por ejemplo, / Archivo / ¿Nuevo? FolderId = 234).

Configuración única funciona como se espera:

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

Intenté tener 2 configuraciones con 2 secciones de ubicación en la raíz web.config, pero sin éxito. No estoy seguro de qué escribir en "ruta": página física de una vista, o controlador + acción ... sin embargo, nada parece funcionar.

<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>

Intenté colocar otro web.config en una carpeta de vista específica (por ejemplo, / Vistas / Imagen / ...), como funciona en el formulario web clásico ASP.NET, pero esto tampoco parece hacer el truco ...

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

No importa lo que haga, solo se aplica un valor para httpRuntime.maxRequestLength: el de (raíz) web.config ... system.web.


Esta solución está incompleta, porque IIS 7 tiene la configuración de "Filtrado de solicitud" limitada a 30Mb de forma predeterminada. Debes aumentar este parámetro, ver detalles en mi blogpost