5.9.08

Como aumentar el tamaño máximo de los ficheros a cargar en IIS+ASP.NET

Uno de los problemas recurrentes a la hora de trabajar con servicios web es que cuando debes crear servicios web que traten ficheros te encuentras con una limitación en el tamaño de los ficheros que se pueden tratar.

Normalmente este límite está establecido en 4MB, un límite más que razonable si consideras que se trabaja conectándose a un servidor de Internet.

Pero más de una vez se puede dar el caso de que el servicio Web esté dentro de la misma red que los clientes, y que necesitemos aumentar este límite para tratar ficheros grandes, digamos que de más de 10MB.

Para hacer esto deberemos modificar la configuración del servidor IIS donde esté funcionando el servicio web, así como la configuración del mismo servicio web.

Vamos por partes.

Eliminar el límite de tamaño para los ficheros que se pueden subir a un servidor IIS

El servidor web IIS 6.0 establece este límite usando una variable llamada AspMaxRequestEntityAllowed, para modificar esta variable tendremos que seguir unos senzillos pasos:
  1. En el servidor IIS, abrimos una consola de comandos
  2. Vamos al directorio c:\inetpub\Adminscripts (o si hemos modificado el directorio por defecto del IIS, al directorio que hayamos establecido).
  3. Ejecutamos los siguientes comandos:
cscript adsutil.vbs set w3svc/AspMaxRequestEntityAllowed "1073741824"
cscript adsutil.vbs set w3svc/{numeroServidorWebVirtual}/AspMaxRequestEntityAllowed "1073741824"
y finalmente Reiniciamos el servicio IIS

NOTA: 1073741824 es el valor máximo para la variable AspMaxRequestEntityAllowed.

Aumentar el límite de tamaño para los ficheros que puede tratar ASP.NET

Para los servicios web el límite se establece en el fichero Web.config correspondiente, en este caso basta con añadir una línea como:

<httpRuntime maxRequestLength="2097151"/>

El valor de maxRequestLength debe estar comprendido entre 0 y 2097151

Y con estos senzillos pasos ya tenemos nuestro servicio web configurado para tratar con ficheros de cualquier tamaño que deseemos.