---編輯---有沒有任何額外的信息可以幫助解決這個問題?Sqlite .NET和實體框架 - 「試圖寫一個只讀數據庫」
我想在.NET WCF Web服務中啓動並運行Sqlite和Entity Framework。
當我嘗試將任何內容保存到數據庫時,我收到錯誤「嘗試寫入只讀數據庫」。下面是完整的錯誤信息:
System.Data.EntityException:當供應商連接上開始交易 錯誤 發生。詳情請參閱內部例外。
---> System.Data.SQLite.SQLiteException: 嘗試寫入只讀數據庫
嘗試寫入只讀數據庫
在 System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
at [snip] ......................................... ...............> at System.Data.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel isolationLevel)at System.Data.Common.DbConnection.BeginTransaction() at System.Data.EntityClient.EntityConnection.BeginTransaction() 在 System.Data.Objects.ObjectContext.SaveChanges(布爾 acceptChangesDuringSave)在 System.Data.Objects.ObjectContext.SaveChanges() 在...
這裏是我的EF裏面配置的Web.config(換行,方便閱讀):
<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>
我爲什麼會收到這個錯誤?爲什麼數據庫是隻讀的?
有些事情我已經試過:
保證了目錄和文件是 寫能夠通過Web服務。 (我 試着寫純文本文件到 相同的目錄中進行測試。)
我已經添加了「只讀=假」到 連接字符串。
您用來連接的用戶是否有寫入數據庫的權限?您是否可以使用Management Studio(或同等產品)連接並寫入數據庫? – ChrisF 2010-06-28 13:48:34
嗯。我沒有指定任何類型的憑據 - 未指定Windows身份驗證或表單身份驗證。當然,我可以連接並寫入本地計算機上的數據庫。我會嘗試在Web服務器上連接。 – 2010-06-28 13:57:36
從我的理解,Sqlite沒有Windows身份驗證或表單身份驗證。它只是一個單一文件數據庫,沒有服務,沒有身份驗證。我錯了嗎? – 2010-06-28 18:40:33