.NET httpRuntime maxRequestLength
Hola,
ando trabajando en un CMS de cosecha propia y tengo una clase para subir ficheros a la BD, el problema llega cuando el usuario quiere subir un fichero de un tamaño superior al que yo especifico en el web.config >> <httpRuntime maxRequestLength="1024" /> (1mb máximo).
La cuestión es que la aplicación no deja subir el fichero, pero lo que hace es mostrar un error del tipo "Internet Explorer no puede ejecutar la página" o "Se ha reiniciado la conexión" en Firefox.
En la función de subida tengo el try..catch correspondiente pero el problema es que detecta el fichero en el envío del form y no hay forma de controlar el error ya que no llega a la función.
Tengo una ñapa poco elegante quitando esa línea del web.config y haciendo un redirect con un error si el fichero es superior a 1mb pero no me parece la mejor forma de hacerlo.
Alguien conoce la solución?
alvararranz
Bueno, me respondo a mi mismo.
No hay manera (que yo sepa) de capturar ese error ni a través del Application_Error del Global.asax ni a traves de un try...catch puesto en alguna parte del código.
El problema es el protocolo http 1.1. No hay ningún mensaje de servidor para parar el upload (la petición del navegador). Entonces cuando el máximo de longitud es superado, asp.net cierra la corriente de petición para parar el upload, esto desde luego hace que el navegador muestre el error.
Así que lo que queda es establecer el maxRequestLength en un valor alto y controlarlo a mano antes de subir el fichero.
Bye bye!