asp.net - una - Eliminar un directorio da como resultado el reinicio de la aplicación
eliminar todos los archivos de un directorio vb net (5)
Ah, y poner el directorio fuera del directorio virtual no es una opción.
Poner el directorio fuera del directorio virtual es la única solución que encontré (hasta ahora). Lo que puede hacer es crear un enlace (unión) en el sistema de archivos para que el directorio parezca estar dentro del directorio virtual, por ejemplo:
- Nuestro sitio web (directorio virtual) se encuentra en C: / projectX / website
- el directorio de datos (donde creamos / borramos archivos y carpetas) se encuentra en C: / projectX / data
- luego creamos un enlace que hace que la carpeta de datos esté disponible como C: / projectX / website / data
El enlace se crea utilizando el programa Linkd.exe (disponible en el kit de recursos de Windows), con el siguiente comando:
linkd c:/projectX/website/data c:/projectX/data
Ahora c: / projectX / website / data es un enlace / unión que apunta al directorio de datos real. Puede trabajar con el enlace como si fuera un directorio físico.
Por ejemplo, en su sitio web puede acceder utilizando este código:
Server.MapPath("~/data")
Y también puede usar el explorador de archivos de Windows y navegar a C: / projectX / website / data. Parece como un directorio real.
Tengo una aplicación con 2 directorios (libros y exportación). Si creamos un libro o una página de un libro en la aplicación, se agrega un directorio con el id de la página (esto es para cargar recursos). Si eliminamos una página, la página (y su directorio) se elimina de la base de datos y del sistema de archivos.
Sin embargo, esto resultó en una pérdida de sesión (incluso un reinicio de la aplicación). He buscado algo en google y encontré el siguiente enlace . Parece ser un problema en ASP.NET 2.0 (y 3.5). Alguien tiene la solución para este problema.
Ahora estamos pensando en escribir un servicio que limpiará los directorios por la noche. Pero tiene que haber otra solución para esto, ¿no? Ah, y poner el directorio fuera del directorio virtual no es una opción.
Intente deshabilitar la supervisión del sistema de archivos. Esto evitará que tu sesión viva. Este artículo puede ser útil para usted.
Para almacenar archivos de datos que se actualizan, crean y eliminan con frecuencia, debe usar la carpeta App_Data en la raíz del sitio web. MSDN para la carpeta App_Data indica:
Contiene archivos de datos de aplicación que incluyen archivos MDF, XML y otros archivos del almacén de datos. La carpeta App_Data es utilizada por ASP.NET 2.0 para almacenar la base de datos local de una aplicación, que se puede usar para mantener la información de membresía y rol.
También consulte la sección Preguntas y respuestas para el uso de la carpeta App_Data : Pregunta de la carpeta App_Data
Parece que hay una revisión compatible que logra lo mismo que el artículo mencionado por Sachin (desactive las notificaciones de cambio de archivo en un sitio web).
Consulte este artículo en microsoft KB para obtener más información.
Pero como mencionó en un comentario, que no tiene acceso al servidor, creo que esto tampoco lo ayudará en su caso.
Yo tuve el mismo problema. La solución es externalizar el manejo de sesión utilizando el servicio de estado ASP.Net. El único inconveniente es que cada objeto que coloque en la sesión debe ser serializable, ya que se transfiere al servicio de estado y viceversa.
Actualmente no tengo la posibilidad de proporcionar más enlaces, pero Google lo ayudará, ahora que sabe qué buscar.