2011-06-13 37 views
111

Al cambiar el tamaño de archivo máximo permitido para la carga, tropecé con esas dos configuraciones.¿Qué obtiene prioridad, maxRequestLength o maxAllowedContentLength?

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

¿Ahora que tiene prioridad sobre la otra? ¿Y tenemos que configurar ambos o es el último (el de IIS7) suficiente?

Respuesta

169

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

(I abordó esta cuestión de http://forums.iis.net/t/1169846.aspx - crédito donde es debido.)

Puede configurar tanto de carácter local en un sitio específico o incluso una carpeta dentro de un sitio mediante la edición del archivo web.config apropiado. Si la longitud del archivo (bueno, solicitud) es menor que maxAllowedContentLength pero más que maxRequestLength, el usuario obtendrá su página de error estándar (ASPX), si tiene una. Si es al revés, recibirá una página de error de IIS. Por esa razón, es posible que desee tener maxAllowedContentLength en un valor muy grande (solo para este sitio web/carpeta) y luego tener el valor límite en maxRequestLength.

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

14

La respuesta corta y dulce es que el más pequeño de los dos tendrá prioridad. Sin embargo, un consejo: en mi opinión, es aconsejable establecer maxRequestLength para que sea el más pequeño de los dos, ya que puede capturar una excepción en el evento Application_Error de Global.asax en caso de que se exceda. Si supera maxAllowedContentLength, primero IIS se ocupará de él en lugar de ASP.NET, por lo que es más complicado tratarlo en el código.

Cuestiones relacionadas