--- modifica --- Sono disponibili informazioni aggiuntive per risolvere questo problema?Sqlite .NET e Entity Framework: "tenta di scrivere un database di sola lettura"
Sto provando ad essere installato e funzionante con un Sqlite ed Entity Framework all'interno di un servizio Web WCF .NET.
Quando si tenta di salvare qualcosa nel database, Viene visualizzato l'errore "tentativo di scrivere un database di sola lettura". Ecco le informazioni di errore completo:
System.Data.EntityException: Un errore è verificato durante l'avvio di una transazione sulla connessione provider. Vedi l'eccezione interna per i dettagli.
---> System.Data.SQLite.SQLiteException: Tentativo di scrivere un database di sola lettura
Tentativo di scrivere un database di sola lettura
a System.Data.SQLite.SQLite3.Reset (SQLiteStatement stmt)
presso [snip] ......................................... ...............> a System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel isolationLevel) a System.Data.Common.DbConnection.BeginTransaction() a System.Data.EntityClient.EntityConnection.BeginTransaction() a System.Data.Objects.ObjectContext.SaveChanges (booleano acceptChangesDuringSave) a System.Data.Objects.ObjectContext.SaveChanges() a ...
Ecco la mia configurazione EF all'interno web.config (con interruzioni di riga per una più facile lettura):
<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>
Perché si riceve questo errore? Perché il database è di sola lettura?
Alcune cose che ho provato:
garantito la directory e il file è write-grado dal servizio web. (Ho provato a scrivere i file di testo al stessa directory di un test.)
ho aggiunto l 'unica = False leggere' per la stringa di connessione.
L'utente che si sta utilizzando per connettersi ha accesso in scrittura al database? Riesci a connetterti e scrivere al database usando Management Studio (o equivalente)? – ChrisF
Hmmm. Non sto specificando credenziali di alcun tipo - non ho specificato l'autenticazione di Windows o l'autenticazione di moduli. Posso connettermi e scrivere sul database sul mio computer locale, ovviamente. Proverò a connettermi sul server web. –
Dalla mia comprensione, Sqlite non ha l'autenticazione di Windows o dei moduli. È solo un database a file singolo, nessun servizio, nessuna autenticazione. Mi sbaglio? –