--- éditer --- Y a-t-il des informations supplémentaires que je peux donner pour aider à résoudre ce problème? J'essaie de démarrer avec un environnement Sqlite et Entity Framework au sein d'un service Web .NET WCF.Sqlite .NET et Entity Framework - "tentative d'écriture d'une base de données en lecture seule"
Lorsque j'essaie d'enregistrer n'importe quoi dans la base de données, Je reçois l'erreur "tentative d'écriture d'une base de données en lecture seule". Voici l'intégralité des informations d'erreur:
System.Data.EntityException: Une erreur produite lors du démarrage d'une opération sur la connexion du fournisseur. Voir l'exception interne pour plus de détails.
---> System.Data.SQLite.SQLiteException: Tentative d'écriture d'une base de données en lecture seule
Tentative d'écriture d'une base de données en lecture seule
à ...
à System.Data.SQLite.SQLite3.Reset (SQLiteStatement stmt)
à [snip] ......................................... ...............> à System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel isolationLevel) à System.Data.Common.DbConnection.BeginTransaction() at System.Data.EntityClient.EntityConnection.BeginTransaction() à System.Data.Objects.ObjectContext.SaveChanges (Boolean acceptChangesDuringSave) à System.Data.Objects.ObjectContext.SaveChanges()
Voilà ma configuration EF à l'intérieur Web.config (avec des sauts de ligne pour faciliter la lecture):
<connectionStrings>
<add
name="FooEntities"
connectionString="metadata=res://*/FooDataModel.csdl|
res://*/FooDataModel.ssdl|
res://*/FooDataModel.msl;
provider=System.Data.SQLite;
provider connection string='data source=C:\domains\myfoosite.com\wwwroot\FooService\Foo.sqlite'"
providerName="System.Data.EntityClient" />
<connectionStrings>
Pourquoi est-ce que je reçois cette erreur? Pourquoi la base de données est-elle en lecture seule?
Certaines choses que j'ai essayé:
le répertoire et Veillé fichier est écriture capable par le service Web. (Je l'ai essayé d'écrire des fichiers texte au même répertoire comme un test.)
J'ai ajouté le « read only = False » à la chaîne de connexion.
L'utilisateur que vous utilisez pour vous connecter a-t-il un accès en écriture à la base de données? Pouvez-vous vous connecter et écrire dans la base de données à l'aide de Management Studio (ou équivalent)? – ChrisF
Hmmm. Je ne spécifie aucune information d'identification d'aucune sorte - ne spécifie pas l'authentification Windows ou l'authentification Forms. Je peux me connecter et écrire sur la base de données sur ma machine locale, bien sûr. Je vais essayer de me connecter sur le serveur web. –
D'après ce que je comprends, Sqlite n'a pas d'authentification Windows ou d'authentification Forms. C'est juste une base de données à un seul fichier, pas de services, pas d'authentification. Est-ce que je me trompe? –