SQLite尝试编写只读数据库错误

时间:2015-08-04 21:36:05

标签: c# sqlite

我有一个填充SQLite数据库的控制台应用程序。当应用程序自行运行时,我不会收到任何错误。如果我运行应用程序的多个实例,其中每个应用程序都在自己的文件夹中,并且每个应用程序都填充自己的数据库,我偶尔会遇到以下异常:

AccountID

我知道数据库不是只读的,因为它已经将数据写入该数据库。此外,应用程序继续并将继续将数据填充到该数据库。当只有一个应用程序实例正在运行时,我没有重现错误。

我尝试使用pragma将journal和temp_store都放在内存而不是文件中,以防在应用程序中出现争用,但我仍然得到错误。我总是在同一个方法中得到错误,这是连接第一次插入。为了大致了解应用程序的作用,它会循环遍历案例,收集有关这些案例的信息(而不是来自SQLite),然后将结果写入SQLite数据库。

我不知道还有什么可以尝试。

*编辑 我也在使用PRAGMA journal_mode = MEMORY。在将数据插入SQLite数据库时,我首先运行BEGIN语句,然后在END语句之前运行一堆插入。第一次插入时发生错误。

2 个答案:

答案 0 :(得分:5)

这是一个权限问题。

确保托管的Web应用程序具有对sqlite数据库所在文件夹的添加/写入/创建/删除访问权限。

有关详细信息,请参阅this

答案 1 :(得分:0)

也可能是MigrationAssembly不支持数据库文件。

当EF尝试在期望为SQLite数据库的文件上进行迁移时,抛出相同的异常。一个文本文件。