¿Cómo activo la carga de archivos grandes en ASP clásico en IIS 7?

Recientemente tuve que obtener una aplicación ASP antigua que funciona en IIS 7.5 en un servidor W2K8. Casi todo funciona bien, excepto que parece que no puedo aceptar cargas superiores a ~ 200kB. Encontré una configuración, que por lo que puedo entender debería ser el truco, en la aplicación Host.config, establecí el tamaño máximo de solicitud en 100 MB como este:

         

Desafortunadamente, esto parece no hacer nada, todavía se niega a aceptar archivos de más de 200 KB, y en el archivo de registro muestra este mensaje de error:

 ASP_0104 _: _ 80004005 | Operation_not_Allowed

Google que apunta a boost maxAllowedContentLength como lo he hecho anteriormente. Así que estoy recién de ideas, pero confío en que la multitud inteligente stackoverflow puede resolver esto en menos tiempo de lo que tardó en escribir esta pregunta.

maxAllowedContentLength controla la cantidad de datos que se permite enviar en una respuesta. Sin embargo, desea controlar cuánto se puede aceptar en una solicitud. Esto es manejado por el atributo maxRequestEntityAllowed del elemento de limits en la sección asp del archivo de configuración. Un ejemplo podría ser similar a:

      

Puede configurar esto en el administrador de IIS7 en la categoría “Propiedades de límite” en la cuadrícula de propiedades para la característica ASP. Alternativamente, puede usar una línea de comando:

 appcmd set config /section:asp /limits.maxRequestEntityAllowed:104857600 

Tenga en cuenta que al extender este valor, aumenta la ventana para el ataque DOS donde el atacante envía gran cantidad de contenido al servidor, así que no se sienta tentado a extender esto más allá de lo que realmente necesita.

En Windows 2008 – Vaya a Herramientas administrativas – Administrador de servidor – expanda Roles – expanda Servidor web – haga clic en IIS – y busque la instancia web, para la cual desea cambiar el límite de tamaño de archivo y luego vaya a la opción “ASP” expandir “Límite propiedades “y la propiedad que necesita cambiar es ‘Límite máximo del cuerpo de la entidad solicitante’. El tamaño del archivo siempre está en bytes, por lo tanto, utilice cualquier calculadora en línea para calcular la conversión de bytes a KB o MB.

En primer lugar, la respuesta de @AnthonyWJones fue muy útil, pero no resolvió mi problema, de hecho es un poco impreciso y por eso escribo esto.

Las grandes subidas en IIS 6 eran un desafío, tenía un valor de configuración por el que preocuparse

AspMaxRequestEntityAllowed

La propiedad AspMaxRequestEntityAllowed especifica el número máximo de bytes permitidos en el cuerpo de entidad de una solicitud ASP. Si hay un encabezado Content-Length presente y especifica una cantidad de datos mayor que el valor de AspMaxRequestEntityAllowed , IIS devuelve una respuesta de error 403. Esta propiedad está relacionada en función a MaxRequestEntityAllowed , pero es específica para la solicitud ASP. Mientras que puede establecer la propiedad MaxRequestEntityAllowed en 1 MB en el nivel general del servicio de publicación World Wide Web (servicio WWW), puede optar por establecer AspMaxRequestEntityAllowed en un valor inferior, si sabe que sus aplicaciones ASP específicas manejan una cantidad menor de datos.


Con la introducción de IIS 7 y su nuevo sistema de configuración jerárquico basado en XML que usa archivos * .config, todo se volvió un poco más complicado.

Ahora hay dos configuraciones que necesita configurar correctamente antes de que la Carga de archivos grandes funcione como espera y ambas viven en diferentes áreas de la configuración.

maxRequestEntityAllowed

         

El atributo maxRequestEntityAllowed especifica la cantidad máxima de bytes permitidos en el cuerpo de entidad de una solicitud ASP. Si hay un encabezado Content-Length presente y especifica una cantidad de datos mayor que el valor de maxRequestEntityAllowed , IIS devuelve una respuesta de error HTTP 403.

IMPORTANTE: la configuración de la configuración anterior funcionará hasta cierto punto, como se verá en el valor predeterminado a continuación, pero una vez que llegue a ese valor predeterminado independientemente de en qué se establezca maxRequestEntityAllowed , el servidor responderá con la respuesta de error HTTP 404 Not Found. Esto me confundió al principio porque pensé que debía ser mi código el que devolvía la respuesta de error 404.

maxAllowedContentLength

           

Especifica la longitud máxima de contenido en una solicitud, en bytes. El valor predeterminado es 30000000, que es aproximadamente 28.6MB.

Esta configuración es extremadamente importante ya que define el número máximo de bytes en una solicitud IIS (no una solicitud ASP como el valor de configuración anterior) no tiene nada que ver con la duración del contenido de la respuesta (como se ha indicado anteriormente) . Independientemente de lo que se maxRequestEntityAllowed (que es una configuración específica de asp-classic ), si maxAllowedContentLength no está configurado o si intenta subir más de los 28 MB (aproximadamente), obtendrá una respuesta de error HTTP 404.

Campo de golf

  • Límites de ASP

  • Límites de solicitud

para aquellos que no pueden ejecutar el comando appcmd desde CMD, necesitas cambiar la ruta a C: \ windows \ system32 \ inetsrv ya que el comando reside en esa carpeta.

La solución aceptada aquí no funcionó para mí. Primero, no había el elemento especificado en mi configuración y no quería arruinar un archivo de configuración.

También probé la solución de @ shoaib-suleman y tampoco funcionó. Finalmente, encontré la solución que se muestra aquí y funcionó.

  1. Abra SnapIn de IIS 7

  2. Seleccione el sitio web que desea habilitar para aceptar grandes cargas de archivos.

  3. En la ventana principal, haga doble clic en ‘Solicitar filtro’

  4. Una vez que se abre la ventana, puede ver en la parte superior una lista de tabs, por ejemplo: extensiones de nombre de archivo, reglas, segmentos ocultos, etc.

    Independientemente de la pestaña que seleccione, en la ventana principal, haga clic con el botón derecho para mostrar un menú contextual emergente. Seleccione “Editar configuración de funciones” en el menú.

  5. En el formulario que aparece, modifique la “Longitud máxima permitida del contenido (bytes)”