Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2005, 03:23
gibi
 
Fecha de Ingreso: junio-2004
Mensajes: 67
Antigüedad: 20 años, 10 meses
Puntos: 0
Solución errores en recordSet

Solución al problema que da en ASP abrir una base de datos Access.
Con los últimos parches de Microsoft y sobretodo en Windows 2003 Server, la gente está teniendo problemas para actualizar recordset en ASP.

Errores de Jet Direct como este o similares
No se pudo usar '(desconocido)';
el archivo ya está en uso.
o
La operación debe usar una consulta actualizable

aparecen cuando ejecutamos la aplicación Web y por ejemplo tenemos la base de datos Access abierta por otro lado.

Pues,
1. Es obligatorio darle permisos de escritura a la cuenta de invitado de Internet a la base de datos IUSR_nombremaquina.

2. Con particiones FAT esto no pasa, solo con particiones NTFS. (Hay que estar loco para montar un servidor Web sobre FAT)

3. El error está en dar permisos solo a la base de datos en si. Por que el fichero de bloqueos de Access LDB se crear al abrir la base de datos por primera vez y si entramos localmente desde Access lo crea sin los permisos para IUSR_nombremaquina.

POR TANTO SE DEBE DAR PERMISOS SOBRE EL DIRECTORIO DONDE SE ALOJA LA BASE DE DATOS Y NO SOBRE LA BASE DE DATOS EN SI.

Así al crear el fichero de bloqueos LDB, se crea con los permisos de escritura predeterminados para IUSR_nombremaquina y la aplicación Web funciona a la perfección.

En bases de datos de solo lectura este problema no lo tenemos.

Mi recomendación (por temas de seguridad) es crear un directorio con todas las bases de datos separado de las paginas asp y a este directorio darle los permisos de escritura al IUSR_nombremaquina que es la Cuenta de invitado de Internet.

Bueno espero les sirva.
Ya me comentarán….

Gibi Velázquez
www.joies.mataller.com