Al intentar cargar un archivo que excede los 30MB, los servidores web a menudo responden con un error HTTP Error 404.13 - Not Found. Este error, generado por el módulo de filtrado de solicitudes, indica que la longitud del contenido de la solicitud sobrepasa el límite configurado, o en algunos casos, la longitud de la cadena de consulta excede el valor de maxQueryStringLength.
Configuración Global en applicationhost.config
Para modificar el límite de contenido de solicitud a nivel global, se debe editar el archivo applicationhost.config, ubicado típicamente en C:\Windows\System32\inetsrv\config.
Dentro de este archivo, localice la sección system.webServer/security/requestFiltering y añada o modifique el atributo maxAllowedContentLength. Este valor se especifica en bytes.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- El valor está en bytes. Por ejemplo, 40MB = 40 * 1024 * 1024 = 41943040 bytes -->
<requestLimits maxAllowedContentLength="41943040" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Configuración Específica del Sitio o Aplicación (web.config)
Es posible anular la configuración global mediante el archivo web.config de una aplicación específica. Esto permite establecer límites distintos para diferentes sitios o directorios virtuales.
Primero, asegúrese de que la sección requestFiltering permita la anulación. En IIS 7.5 y versiones posteriores, el valor predeterminado de overrideModeDefault para requestFiltering es Allow.
Modifique el archivo web.config añadiendo la configuración necesaria dentro de la sección system.webServer/security:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- Limita el contenido de la solicitud a 2MB (2 * 1024 * 1024 bytes) -->
<requestLimits maxAllowedContentLength="2097152" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
Adicionalmente, para aplicaciones que utilizan el framework .NET, el límite de lnogitud de la solicitud puede configurarse en la sección system.web del archivo web.config mediante el atributo maxRequestLength del elemento httpRuntime. Es importante notar que este atributo se mide en kilobytes (KB).
<configuration>
<system.web>
<!-- maxRequestLength se mide en KB. Por ejemplo, 100MB = 100 * 1024 = 102400 KB -->
<httpRuntime maxRequestLength="102400" />
</system.web>
</configuration>
Tenga en cuenta que la configuración en web.config dentro de system.webServer tiene precedencia sobre la configuración en system.web para el control del tamaño de la soilcitud.