---编辑---我可以提供任何其他信息来帮助解决这个问题吗?
我正在尝试在.NET WCF Web服务中启动并运行Sqlite和Entity Framework。
当我尝试将任何内容保存到数据库时,我收到错误“尝试编写只读数据库”。这是完整的错误信息:
System.Data.EntityException:错误 在开始交易时发生 在提供者连接上。有关详细信息,请参阅内部异常。
---> System.Data.SQLite.SQLiteException: 尝试编写只读数据库
尝试编写只读数据库
在 System.Data.SQLite.SQLite3.Reset(SQLiteStatement 语句)
在[snip] .............................................. ..........> 在System.Data.EntityClient.EntityConnection.BeginDbTransaction(IsolationLevel) isolationLevel)at System.Data.Common.DbConnection.BeginTransaction() 在 System.Data.EntityClient.EntityConnection.BeginTransaction() 在 System.Data.Objects.ObjectContext.SaveChanges(布尔 acceptChangesDuringSave)at System.Data.Objects.ObjectContext.SaveChanges() 在......
这是我在Web.config中的EF配置(带有换行符以便于阅读):
<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服务编写。 (我有 尝试将纯文本文件写入 与测试相同的目录。)
我已将'read only = False'添加到 连接字符串。
答案 0 :(得分:3)
原来问题是IIS安全设置。我不得不打开脚本写访问,神奇地开始工作。