2010-02-25 4 views
12

Je rencontre un petit problème que je pensais être lié à la sécurité mais, il s'avère que je ne peux pas être comme je l'ai fait presque tout ...Tentative d'écriture d'une base de données en lecture seule - System.Data.SQLite

Beaucoup d'informations à ce sujet sur le web, mais rien n'a de réponse pour résoudre le problème.

Permettez-moi de dire à mes étapes:

  • ont un site Web sur VS2k8 que lorsque je déboguer ou commencer par Cassini, tout fonctionne très bien
  • Lors de la configuration IIS 7.5 (Win7) pour pointer vers ce site et après l'ajout de IIS_IUSRS Modifier les droits, j'obtiens l'erreur
  • Même chose avec IIS 6.0!

Img: Sécurité sur fichier de base de données à partir de IIS 7,5

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

Notez que tous les autres fichiers et dossiers ont les mêmes droits que ci-dessus

La pleine erreur est:

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.Gardez à l'esprit que cela doit fonctionner avec IIS 6 (Windows 2003) et, IIS 7.5 est uniquement pour le dépannage que nous avons plus de contrôle dans tout ...

+0

Avez-vous vérifié l'état en lecture seule du fichier? –

+1

Oui je l'ai fait, ce n'est pas en lecture seule, non des fichiers dans IIS sont: -/ – balexandre

Répondre

11

Assurez-vous que le compte utilisateur Web anonyme (NETWORK SERVICE ou maybe something else) sous lequel votre application Web s'exécute dispose d'un accès en lecture/écriture/création/suppression au dossier où réside la base de données sqlite.

+0

sous IIS 7.5 vous pouvez choisir d'utiliser un utilisateur ou une application, mon utilisateur anonyme est IUSR (comme vous pouvez le voir, il existe dans le Panneau de sécurité) et j'ai la même erreur sur l'utilisation de l'identité du pool d'applications (img: http://www.balexandre.com/temp/2010-02-25_1150.png) – balexandre

0

L'autre réponse me donne une idée du problème, mais ma solution était un peu différente. Le problème était que l'utilisateur n'avait pas les autorisations pour modifier le dossier et le fichier .db. Donc, je donne la permission à l'utilisateur Tout le monde (groupe collectif pour Utilisateurs authentifiés et Invité). Les permisions sur SERVICE RÉSEAU (ou similaires) n'ont pas résolu dans mon cas.

Remarque: Le IIS doit être redémarré, après la modification, pour charger la modification effectuée.

Questions connexes