2010-02-25 20 views
12

Sto avendo un piccolo problema che pensavo fosse correlato alla sicurezza ma, risulta che non può essere come ho fatto quasi tutto ...Tentativo di scrivere un database di sola lettura - System.Data.SQLite

Un sacco di informazioni su questo sul web, ma nulla ha una risposta per risolvere il problema.

Lasciatemi dire ai miei passi:

  • avere un sito web su VS2k8 che quando il debug o parto da Cassini, tutto funziona benissimo
  • Quando si configura IIS 7.5 (Win7) per puntare a questo sito web e dopo aver aggiunto IIS_IUSRS Modifica i diritti ottengo l'errore
  • Stessa cosa usando IIS 6.0!

Img: Sicurezza sul file di database da IIS 7,5

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

Si ricorda che tutti gli altri file e le cartelle hanno gli stessi diritti di cui sopra

L'errore completo è:

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.Tenete a mente che questo deve lavorare con IIS 6 (Windows 2003), così, l'IIS 7.5 è solo per la risoluzione dei problemi, come abbiamo più il controllo in ogni cosa ...

+0

Hai controllato lo stato di sola lettura del file? –

+1

Sì, sì, non è di sola lettura, non dei file in IIS sono: -/ – balexandre

risposta

11

Assicurarsi che l'account utente anonimo web (SERVIZIO DI RETE o maybe something else) in cui viene eseguita l'applicazione Web ha accesso in lettura/scrittura/creazione/eliminazione alla cartella in cui risiede il database sqlite.

+0

in IIS 7.5 è possibile scegliere wither per utilizzare un utente o un'applicazione, il mio utente anonimo è IUSR (come si può vedere, esiste nel pannello di sicurezza) e ho lo stesso errore sull'uso dell'identità del pool di applicazioni (img: http://www.balexandre.com/temp/2010-02-25_1150.png) – balexandre

0

L'altra risposta mi dà un'idea del problema, ma la mia soluzione era un po 'diversa. Il problema era che l'utente non disponeva delle autorizzazioni per modificare la cartella e il file .db. Quindi concedo l'autorizzazione all'utente Tutti (gruppo collettivo per Utenti autentificati e Guest). Le autorizzazioni sul servizio di rete (o simili) non hanno risolto nel mio caso.

Nota: Il IIS deve essere riavviato, dopo la modifica, per caricare la modifica effettuata.

Problemi correlati