¿Qué obtiene prioridad, maxRequestLength o maxAllowedContentLength?

127

Mientras cambiaba el tamaño máximo de archivo permitido para la carga, me topé con esas dos configuraciones.

En sytem.web tiene el nodo de tiempo de ejecución http con maxRequestLength . En system.webServer tiene requestLimits con maxAllowedContentLength .

¿Ahora cuál tiene prioridad sobre el otro? ¿Y necesitamos establecer ambos o es el último (el de IIS7) suficiente?

Floris Devriendt
fuente

Respuestas:

196

maxRequestLength indica el tamaño máximo de solicitud admitido por ASP.NET, mientras que maxAllowedContentLength especifica la longitud máxima de contenido en una solicitud admitida por IIS. Por lo tanto, debe configurar ambos para cargar archivos grandes: el más pequeño "tiene prioridad".

(Recogí esto de http://forums.iis.net/t/1169846.aspx - crédito donde corresponde).

Puede establecer que ambos sean locales para un sitio específico o incluso una carpeta dentro de un sitio editando el archivo web.config apropiado. Si la longitud del archivo (bueno, solicitud) es menor que maxAllowedContentLength pero mayor que maxRequestLength, el usuario obtendrá su página de error estándar (ASPX), si tiene una. Si es al revés, obtendrá una página de error de IIS. Por esa razón, es posible que desee tener maxAllowedContentLength a un valor muy grande (solo para este sitio web / carpeta) y luego tener el valor límite sea maxRequestLength.

Finalmente, recuerde que maxRequestLength está en KB mientras que maxAllowedContentLength está en BYTES!

Ed Graham
fuente
Tengo 3 controles de carga en mi página donde el control de carga tiene un límite de 50 MB. Así que estoy cargando un total de 150 MB de una vez, Mi configuración es maxAllowedContentLength = "51200000" & executeTimeout = "1200" & maxRequestLength = "51200". qué longitud debería cambiar aquí. Por favor recomiende.
Nirav Vasoya
21

La respuesta corta y dulce es que la menor de las dos tendrá prioridad. Sin embargo, un consejo: en mi opinión, es recomendable configurar maxRequestLength para que sea el más pequeño de los dos, ya que puede detectar una excepción en el evento Application_Error de su Global.asax en caso de que se supere. Si supera maxAllowedContentLength, primero IIS se ocupará de él en lugar de ASP.NET, por lo que es más difícil tratarlo en código.

joelmdev
fuente