2011-11-22 8 views
5

Tengo una base de datos de acceso que se encuentra en el servidor x iis se está ejecutando en el servidor y. Una de mis páginas web accede a los datos de la base de datos de acceso. Si alguien tiene abierta la base de datos de acceso, digamos un usuario final en nuestra red, las páginas web fallan con un mensaje de error ... ya abierto exclusivamente por otro usuario.Base de datos de acceso ya abierta de manera exclusiva por otro usuario

Creé una base de datos de acceso local y utilicé tablas vinculadas para acceder a las tablas de esa manera. Aún así consigo el ya abierto exclusivamente por otro error de usuario. Si voy a través de Windows Explorer y navego hacia el servidor x y abro la base de datos, puedo sin problema. Entonces mi pregunta es cómo puedo simular el mismo tipo de conectividad a la base de datos sin que se genere el error, es una cuestión de permisos para la base de datos de acceso o algo dentro de mi conexión que me permita acceder a la base de datos.

Dado que arroja el error durante mi conexión. Open command Estoy pensando que está relacionado con permisos o algo adicional que necesito agregar a mi cadena de conexión. He otorgado el control total para IIS AppPool \ en el directorio local en el que reside mi instancia local de la base de datos de acceso pero que no parece marcar la diferencia.

Mi cadena de conexión se ve así:

Private Shared connSheriff As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverx\directory\Access\MyDatabase.mdb;Jet OLEDB:Database Password=property;") 
+0

¿Estás abriendo la base de datos como administrador? Si sospecha de la cadena de conexión, probablemente valga la pena publicarla. – Simon

+0

ConnSheriff privado compartido como nuevo OleDbConnection ("Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = \\ serverx \ directorio \ Access \ MyDatabase.mdb; Jet OLEDB: Contraseña de base de datos = propiedad;") –

+1

Puede considerar etiquetar su pregunta con el lenguaje de programación web que está utilizando para llegar a un público más amplio. Además, le recomiendo que ponga algunos saltos de línea, signos de puntuación y tal vez otro formato en su pregunta para que sea más legible. – HK1

Respuesta

1

Hay algunos options within the mdb que cambiar la forma en la base de datos se abre por defecto, estos deben ser su primer puerto de escala en particular estableciendo el "modo de apertura por defecto" a "compartida ".

Ya ha dividido la base de datos (tablas de datos en el back-end compartido, tablas vinculadas y el resto en el front-end). Asegúrese de que cada usuario utilice una copia separada del mdb front-end; de lo contrario, obtendrá problemas de bloqueo al respecto.

Hay un interruptor de línea de comando (/ excl) que establece el modo exclusivo, pero simplemente omita esto para abrir el db compartido, así que dudo que esto sea un problema.

Usted probablemente ya sabe esto, pero el "Shared" modificador no tiene nada que ver con el intercambio entre aplicaciones o usuarios, pero comparte la variable de conexión entre las instancias de la clase (el equivalente C# es "estática")

Cuestiones relacionadas