Recientemente me encontré con un problema con una web en ASP que se ejecuta en un IIS6 que esta en Windows 2003 Server. El problema en cuestión sucedía con una función que hacia que en el navegador se mostrase una ventana de descargar un fichero, al escribir la ruta del mismo en el navegador, en lugar de mostrarte el contenido por el navegador. En mi caso era un fichero TXT, pero podría darse con cualquier otro tipo de ficheros, con lo que si accedía por el navegador a la URL del fichero, me ofrecía descargar el fichero, en lugar de mostrar el contenido del fichero TXT en el navegador.
La función que utilicé es la siguiente:
Dim sFileName, sFilePath, oStream, sId
sId = Request.QueryString(“Id”)
‘Mostrar la ventana de descarga de fichero
Response.ContentType = “text/plain”
sFileName = sId & “.txt”
sFilePath = Server.MapPath(“/”) & “/ruta/del/fichero/” & sFileNameResponse.AddHeader “Content-Disposition”,”attachment; filename=” & sFileName
Set oStream = CreateObject(“ADODB.Stream”)
oStream.Open()
oStream.Type = 1
oStream.LoadFromFile(sFilePath)
Response.BinaryWrite oStream.Read()
oStream.CloseSet oStream = Nothing
Response.End
El problema se encuentra en que si el fichero en cuestión pesaba mas de 4MB (4096 Kb) el navegador me mostraba el siguiente error por pantalla y el fichero no se descargaba.

La razón de este problema recae en una variable de sistema que limita el tamaño del buffer en ASP, el cual esta limitado a 4MB para descarga de ficheros y 200Kb para subida de ficheros.
Para augmentar este limite debemos seguir los siguientes pasos:
Abrimos el panel de IIS (Internet Information Server), pulsamos botón derecho sobre nuestro servidor, y seleccionamos Properties.

En la ventana que nos aparecerá, marcamos el checkbutton que dice Enable Direct Metabase Edit, y pulsamos Apply para guardar los cambios.

Una vez realizado este, abrimos el Explorador de Windows y accedemos a la siguiente ruta:
C:\Windows\system32\inetserv\
Abrimos el archivo metabase.xml con el bloc de notas para editarlo y modificamos las siguientes variables (los valores en bytes).
Variable para modificar el limite de subida (por defecto: 350000 bytes [341.79 Kb]):
AspMaxRequestEntityAllowed=”350000″
Variable para modificar el límite de bajada (por defecto: 4194304 bytes [4 MB])
AspBufferingLimit=”4194304″
Una vez hayamos aumentados estos valores por los que mas nos convenga, guardamos los cambios.
Finalmente volvemos al panel de IIS, y desmarcamos el checkbutton que anteriormente habíamos marcado y ya podremos descargar o subir ficheros con los nuevos limites establecidos.





Posted in
Tags: 




