Pregunta

Tengo un escenario en el que necesito cargar un archivo desde una aplicación web y usarlo en otra. Mi configuración es la siguiente.

  • Un servidor que aloja dos aplicaciones web en IIS, ambas son ASP.NET
  • Una de las aplicaciones se usa para administrar la otra + muchas más cosas
  • Necesito cargar un archivo desde esta aplicación de administración, guardar la ruta en la base de datos a través del DAL y luego acceder al archivo desde la otra aplicación web, que proporcionaría el archivo para descargar
  • Mantengo los archivos en el disco, solo la ruta en la base de datos

¿Dónde y cómo puedo cargar el archivo para poder acceder a él desde ambas aplicaciones web? ¿Debo usar un servicio o hay alguna otra forma?
Aquí hay algunas preguntas relacionadas que encontré, pero no creo que cubran mi escenario particular:
¿Cómo manejar las cargas de archivos a un servidor de imágenes dedicado?
¿Cómo subir un archivo a un servicio WCF?

¿Fue útil?

Solución

Dado que ambas aplicaciones están en el mismo servidor, esto debería ser sencillo:

  • Guarda el archivo cargado en algún lugar de el servidor.
  • Crear un directorio virtual en cualquier aplicación que necesita exponer el archivos que apuntan a la ruta física.
  • Guarde la ruta virtual en la base de datos para mayor flexibilidad

Otros consejos

Puede configurar un nuevo directorio virtual en cada aplicación que apunte a la misma carpeta en su servidor donde cargaría los archivos. Digamos que creó una nueva carpeta en su unidad c: llamada '' uploads '' es decir, c: \ subidas. Luego, en IIS, configure un nuevo directorio virtual llamado '' cargas '' que apunta a c: \ uploads para cada aplicación web. Eso debería dar a ambos sitios acceso a los archivos.

¿Puedo preguntar por qué no mantiene el archivo en la base de datos? Esto haría que pasarlo sea mucho más fácil.

Suponiendo que se puede acceder a la ruta del archivo que colocó en la base de datos desde la aplicación web que no es de administración (que suena como es), el archivo solo necesita ir a un lugar donde ambas aplicaciones tengan derechos de acceso. Solo la aplicación de administración debe tener acceso de escritura.

Puede configurar qué cuenta de usuario se ejecutará un sitio web de IIS en Propiedades del sitio web > Seguridad de directorio en la consola de administración de IIS. Luego, solo asegúrate de establecer los permisos de directorio apropiados.

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