代码之家  ›  专栏  ›  技术社区  ›  Judah Gabriel Himango

sqlite.net and entity framework-“尝试写入只读数据库”

  •  5
  • Judah Gabriel Himango  · 技术社区  · 16 年前

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

    我试图在.NET WCF Web服务中运行并使用SQLite和实体框架。

    当我试图将任何内容保存到数据库时, 我收到错误“尝试写入只读数据库” . 这里是完整的错误信息:

    Stask.DATA EntIyExtExc:错误 在启动事务时发生 在提供程序连接上。详情请参阅内部异常。

    --->system.data.sqlite.sqlite异常: 尝试写入只读数据库

    尝试写入只读数据库
    在 system.data.sqlite.sqlite3.reset(sqliteStation STMT)
    在……[…] 在.Stase.数据. 隔离级别) Stask.No.DCONTION。 在 System.Data.EntityClient.EntityConnection.BeginTransaction()。 在 系统.DATA对象.ObjultValue.SaveChanges(布尔) 保存时接受更改 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 回复  |  直到 16 年前
        1
  •  3
  •   Judah Gabriel Himango    16 年前

    结果发现问题是IIS安全设置。我必须打开脚本写访问,然后神奇地开始工作。