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
Vea mi respuesta aquí: ASP.NET MVC y httpRuntimeecutionTimeout