requestlimits requestfiltering net maxquerystring maxallowedcontentlength files change asp asp.net iis-6 file-upload

asp.net - net - requestfiltering web config



¿Cómo configuro IIS para manejar cargas de archivos realmente grandes? (6)

Plataforma: IIS 6, ASP.Net 2.0 (.Net 3.5), Servidor 2003.

Estoy construyendo una aplicación que acepta archivos de un usuario, los procesa y devuelve un resultado. El archivo se carga utilizando HTTP POST a un formulario web ASP.Net. La aplicación espera algunos archivos grandes (cientos de MB).

Estoy usando SWFUpload para completar la carga con una barra de progreso agradable, pero eso no está contribuyendo al problema, porque cuando lo puenteo usando un formulario HTML estándar que apunta a mi página de aceptación de carga, obtengo exactamente el mismo error. Al usar la barra de progreso, la carga continúa al 100% y luego falla. Con una forma estándar, el comportamiento parece ser el mismo.

Tengo un problema ahora mismo al cargar un archivo de aproximadamente 150 MB. Cambié todas las configuraciones que puedo encontrar, pero todavía no tuve suerte.

Aquí hay un resumen de lo que he cambiado hasta ahora:

En Web.config: se agregó esto dentro del sistema.web:

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/>

En machine.config: Inside system.web, cambiado:

<processModel autoConfig="true" />

a:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" />

y en MetaBase.xml: Cambiado:

AspMaxRequestEntityAllowed="204800"

a:

AspMaxRequestEntityAllowed="200000000"

Cuando falla la carga, recibo un error 404 de IIS. Mi formulario web no comienza a procesarse, o al menos no llega al evento Page_Load. Lancé una excepción al comienzo de ese controlador, y no se ejecuta en absoluto en archivos grandes.

Todo funciona bien con archivos más pequeños (he probado hasta unos 5,5 MB). No estoy exactamente seguro de qué tamaño de archivo es el límite, pero sé que mi límite debe ser superior a 150 MB, ya que este no es el archivo más grande que el cliente deberá cargar.

¿Alguien puede ayudar?


404 y Page_Load faltante: IIS solo puede procesar la solicitud una vez que la POST completa está en el servidor. Por lo tanto, si el POST falla (debido a su tamaño), no puede activar los eventos de la página.

Puede probar NeatUpload http://www.brettle.com/neatupload . Del manual: "De forma predeterminada, NeatUpload no limita directamente el tamaño de las cargas".



Urlscan estaba activo en todos los sitios web y tiene su propio límite de longitud de entidad de solicitud. No sabía que Urlscan se estaba ejecutando en nuestro servidor porque era un filtro ISAPI global, que no se ejecuta en mi sitio web individual.

Nota: para ubicar filtros ISAPI globales, haga clic con el botón derecho en la carpeta Sitios web en Administrador de IIS y haga clic en Propiedades, luego en la pestaña Filtros ISAPI.


También puede probar Velodoc XP Edition, que tiene varias ventajas sobre NeatUpload, incluido el hecho de que utiliza extensiones ASP.NET Ajax. Consulte también el sitio web de Velodoc para obtener más información.


Tu dices:

Pero 1536000 es solo 1.5MB?


(Una nota para googlers):

Para IIS7 agregue a continuación a web.config (agregué arriba <system.serviceModel> ):

<system.webServer> <security> <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 --> </security> </system.webServer>