none
ASP.NET + Conexión a unidad de red RRS feed

  • Pregunta

  • Estimados,
    Antes que nada, buenas tardes.
    Estoy teniendo un inconveniente básicamente al acceder desde un sitio web ASP.NET en IIS8 a una unidad mapeada (Ubicación de red).
    Para entender mejor el asunto, les paso a explicar:
    Actualmente tengo en mantenimiento 130 apps webforms (si, 130, malas decisiones y no tener un perfil de líder de dev o arq swf generaron que hoy la empresa tenga un enorme lío), y cada app tiene su propia base de dato, una app desk (esta ultima es un importador de archivo) y un acceso a FTP.
    La cuestión es la siguiente:
    Mediante la app web el cliente puede visualizar sus PDFs que están alojados en un storage (unos discos sas conectados a un servidor que hace de file server y dicho server ve los discos sas como discos propios [si se cae el server o se rompe, se desconecta el sas y se reconecta en otro server]), la app web tiene su propia base de datos y en una tabla están los path con los PDFs. La app desk toma los PDFs y los mueve al file server (mediante FTP) y actualiza los path en la base. Este mismo esquema se replica en las 130 apps.
    El problema (ya me paso en el poco tiempo que estoy en la empresa) es que si se rompe el file server hay que reconectar el disco sas en otro server, lo que implica modificar los config de las 130 apps web y que apunten al nuevo file server, modificar los FTP, modificar los config de las apps desk para que actualicen bien los path y updetear todos los registros de todas las bases.
    En estos momentos no tengo el tiempo y la gente para aplicar reingenieria y tocar el código de las 130 apps. Por lo que se me ocurrió tener en el app server una unidad de red mapeada al file server: X: -> \\192.168.1.1\images, luego tengo una unidad mas llamada X donde puedo browsear el file server, hasta acá todo OK. El problema surge al querer acceder a dicha unidad desde las aplicaciones web, no se reconoce la ruta.
    Ya modifique la identidad del application pools asignándole un usuario que existe en el LDAP y tiene permiso al file server, por lo cual la aplicación web debería autenticarse a la unidad X: con dicho usuario. El mismo usuario lo di de alta en el app server como usuario de equipo. Luego en el grupo IIS_IUSRS de usuarios y grupos locales agregue el usuario local del app server, el usuario de domino y el usuario NT AUTHORIRY\IUSR. Ya personifique el usuario mediante web.config, no se me ocurre mas nada, de hecho hice tantas cosas que perdí la secuencia de pasos de como debería ser la configuración.
    Esta solución es importante para tener todas las apps tanto web como desk y los path de base de datos con un path relativo y si se cae el file server, conectar el disco sas a otro server y reconfigurar la unidad mapeada, manteniendo la misma unidad pero apuntando a otra carpeta.

    Muchas gracias y perdón por el msj tan largo.

    martes, 16 de enero de 2018 19:21

Respuestas

  • Te propongo otra solución: en lugar de acceder a \\192.168.1.1\images, configúralo para \\nombreDNS\images, y da de alta "nombreDNS" en tu servidor DNS. Si se cae el filesystem y tienes que apuntarlo a otra unidad, simplemente cambia la IP asociada a ese nombre en el DNS, espera a que se agote el TTL (puedes ponerle 1 minuto o menos, si quieres), y listo, ya tienes los equipos accediendo al otro server sin tener que reconfigurar nada aparte de la entrada en el DNS.
    martes, 16 de enero de 2018 20:04
  • Lo plantee y mas que seguro que vayamos por esta alternativa, pero ahora recuerdo porque quería utilizar unidades de red: hoy en día tengo el servidor donde están colgados los discos sas, el sistema operativo ve estos discos como unidades locales (F:, G:, H:, I:, exactamente tengo 4). Desde las apps y en la base tengo el path en duro: \\192.168.1.1\F$\images, por lo cual si utilizo acceso por DNS estaría resolviendo parte del problema ya que si se cae el servidor, solo restaría actualizar el DNS al nuevo server, pero es condición obligatoria que en el nuevo server al cual se le conectarían los discos sas, se vean como las mismas unidades que el server anterior: F:, G:, H:, I:.
    En cambio con unidades de red se pueden mapear unidades a un directorio, por ejemplo: Z: -> \\192.168.1.1\F$\images. Si mañana los discos sas cambian de unidad o cambia el server, solo seria rempaear la unidad: Z: -> \\192.168.1.2\G$\images

    Muchas gracias y saludos.

    miércoles, 17 de enero de 2018 12:46

Todas las respuestas

  • Te propongo otra solución: en lugar de acceder a \\192.168.1.1\images, configúralo para \\nombreDNS\images, y da de alta "nombreDNS" en tu servidor DNS. Si se cae el filesystem y tienes que apuntarlo a otra unidad, simplemente cambia la IP asociada a ese nombre en el DNS, espera a que se agote el TTL (puedes ponerle 1 minuto o menos, si quieres), y listo, ya tienes los equipos accediendo al otro server sin tener que reconfigurar nada aparte de la entrada en el DNS.
    martes, 16 de enero de 2018 20:04
  • Es una buena opción, sinceramente no se me había ocurrido! lo voy a chequear y plantearlo.
    De todos modos, me gustaría sacarme la duda y resolver este tema, me genera dolores de cabeza y a esta hora ganas de resolverlo jaja. No logro ver porque IIS y ASP.NET no acceden a una unidad mapeada, por ejemplo X: y esta unidad a su vez resuelve en una ip.

    Muchas gracias por la pronta respuesta.

    martes, 16 de enero de 2018 20:17
  • Lo plantee y mas que seguro que vayamos por esta alternativa, pero ahora recuerdo porque quería utilizar unidades de red: hoy en día tengo el servidor donde están colgados los discos sas, el sistema operativo ve estos discos como unidades locales (F:, G:, H:, I:, exactamente tengo 4). Desde las apps y en la base tengo el path en duro: \\192.168.1.1\F$\images, por lo cual si utilizo acceso por DNS estaría resolviendo parte del problema ya que si se cae el servidor, solo restaría actualizar el DNS al nuevo server, pero es condición obligatoria que en el nuevo server al cual se le conectarían los discos sas, se vean como las mismas unidades que el server anterior: F:, G:, H:, I:.
    En cambio con unidades de red se pueden mapear unidades a un directorio, por ejemplo: Z: -> \\192.168.1.1\F$\images. Si mañana los discos sas cambian de unidad o cambia el server, solo seria rempaear la unidad: Z: -> \\192.168.1.2\G$\images

    Muchas gracias y saludos.

    miércoles, 17 de enero de 2018 12:46