Pregunta

Tengo una cuadrícula que proporciona algunos enlaces para que los usuarios descarguen archivos. Los archivos se almacenan fuera de la aplicación, las referencias de ruta se leen desde la base de datos y se usa un controlador HTTP (* .ashx) para servir cada archivo solicitado. Sin embargo, es posible que pueda haber una entrada en la base de datos que apunte a un archivo no existente. Capto la FileNotFoundException , pero no estoy seguro de cuál sería el mejor método para informar al usuario del archivo faltante (para que puedan ponerse en contacto con el servicio de asistencia).

La primera idea es establecer un código 404 estándar en la respuesta, y eso es lo que estoy haciendo ahora.

Una forma más útil sería mostrar una notificación (jQuery) sobre un archivo faltante, pero la descarga del archivo no se realiza en AJAX, por lo que esto implicaría un proceso de dos pasos: un controlador de clics del lado del cliente llama a un método de servicio web para verificar si el archivo existe, si no, entonces cancelo el clic (devolver falso) y muestro un mensaje amigable al usuario. Si el archivo existe sin embargo, procedo con la ejecución normal. Pero esto agrega otra llamada al servidor.

¿Has tratado con un problema similar? ¿Cómo lo resolviste?

Algunas aclaraciones: la aplicación está incorporada en ASP.NET 2.0 y usa jQuery para llamar a los métodos del servicio web.

¿Fue útil?

Solución

Pawel, parece que ya has respondido tu pregunta ...

  

... (para que puedan contactar   apoyo) ...

Al indicar lo anterior, sugeriría que cree una página 404 personalizada que notifique al usuario el archivo que no existe en el disco y le brinde información sobre cómo ponerse en contacto con la oficina de asistencia.

He creado un controlador HTTP para manejar archivos y si un archivo no existe en el disco, devuelvo una respuesta 404. He configurado IIS para mostrar una página personalizada si se ha lanzado una respuesta 404 ... (y hago lo mismo para el error 500).

¡Espero que esto ayude y buena suerte con la solución que se ajuste a sus necesidades!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top