2010-02-25 18 views
12

Tengo un pequeño problema que, en mi opinión, estaba relacionado con la seguridad, pero resulta que no puede ser como lo hice casi todo ...Intento escribir una base de datos de solo lectura: System.Data.SQLite

Mucha información sobre esto en la web pero nada tiene una respuesta para solucionar el problema.

Permítanme decir a mis pasos:

  • tiene un sitio web en VS2k8 que cuando elimino errores o empezar de Cassini, todo trabaja muy bien
  • Al configurar IIS 7.5 (Windows 7) para que señale a este sitio web y después de agregar IIS_IUSRS Modificar derechos obtengo el error
  • Lo mismo con IIS 6.0.

Img: La seguridad en la base de datos de archivos de IIS 7,5

alt text http://www.balexandre.com/temp/2010-02-25_1028.png

Tenga en cuenta que todos los demás archivos y carpetas tienen los mismos derechos que el anterior

El error completo es:

Log: Executing query on SQLite Database 

Message *************************************** 
Attempt to write a read-only database 
attempt to write a readonly database 

Stack Trace *********************************** 
at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt) 
at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt) 
at System.Data.SQLite.SQLiteDataReader.NextResult() 
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave) 
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior) 
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery() 
at soDatabaseManager.CommitPersonsToKitchenDatabase() in c:\Adwiza\Kitchen\App_Code\soDatabaseManager.cs:line 242 

P.S.Tenga en cuenta que este tiene que trabajar con IIS 6 (Windows 2003), así, el IIS 7.5 es sólo para la solución de problemas ya que tenemos más control en todo ...

+0

¿Revisó el estado de archivo de solo lectura? –

+1

Sí, lo hice, no es de solo lectura, ninguno de los archivos en IIS es: -/ – balexandre

Respuesta

11

Asegúrese de que la cuenta de usuario de la web anónima (NETWORK SERVICE o maybe something else) bajo el cual se ejecuta su aplicación web tiene acceso de lectura/escritura/creación/eliminación a la carpeta donde reside la base de datos sqlite.

+0

en IIS 7.5. Puede elegir usar un USUARIO o una Aplicación, mi usuario anónimo es IUSR (como puede ver, existe en el Panel de seguridad) y tengo el mismo error al usar la identidad del grupo de aplicaciones (img: http://www.balexandre.com/temp/2010-02-25_1150.png) – balexandre

0

La otra respuesta me da una idea sobre el problema, pero mi solución fue un poco diferente. El problema era que el usuario no tenía permisos para modificar la carpeta y el archivo .db. Así doy permiso al usuario Todos (grupo colectivo para Usuarios autenticados y Invitado). Los permisos en NETWORK SERVICE (o similares) no resolvieron en mi caso.

Nota: El debe reiniciarse, después del cambio, para cargar el cambio realizado.

Cuestiones relacionadas