Sqlite .NET和实体框架 - “尝试编写只读数据库”

时间:2010-06-28 05:08:42

标签: entity-framework sqlite

---编辑---我可以提供任何其他信息来帮助解决这个问题吗?

我正在尝试在.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'添加到 连接字符串。

1 个答案:

答案 0 :(得分:3)

原来问题是IIS安全设置。我不得不打开脚本写访问,神奇地开始工作。