C# SQLite试图写入只读数据库错误

C# SQLite试图写入只读数据库错误,c#,sqlite,C#,Sqlite,我有一个填充SQLite数据库的控制台应用程序。当应用程序自行运行时,我不会得到任何错误。如果我运行应用程序的多个实例,其中每个应用程序都位于自己的文件夹中,并且每个应用程序都填充自己的数据库,我偶尔会遇到以下异常: System.Data.SQLite.SQLiteException (0x80004005): Attempt to write a read-only database attempt to write a readonly database at System.Data

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

System.Data.SQLite.SQLiteException (0x80004005): Attempt to write a read-only database
attempt to write a readonly database
   at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
   at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
   at System.Data.SQLite.SQLiteDataReader.NextResult()
   at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
   at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
我知道数据库不是只读的,因为它已经将数据写入该数据库。此外,该应用程序将继续运行,并将继续向该数据库填充数据。当应用程序只有一个实例在运行时,我没有再现错误

我曾尝试使用pragma将日志和临时存储在内存中,而不是存储在文件中,以防应用程序之间发生争用,但我仍然得到了错误。我总是在相同的方法中得到错误,这是连接第一次发生插入。为了对应用程序的功能有一个大致的了解,它在案例上循环,收集关于这些案例的信息(不是来自SQLite),然后将结果写入SQLite数据库

我不知道还能尝试什么

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

这是权限问题

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


有关更多详细信息,请参阅迁移程序集不支持该数据库文件


当EF尝试迁移预期为SQLite数据库的文件(即fi)时,会引发相同的异常。一个文本文件。

谢谢,但如果它是随机的,怎么可能是权限问题呢?应用程序已成功写入数据库。只有在随机迭代中才会出现这个错误。我同意@UWSkeletor。还有什么?“我已经尝试使用pragma将日志和临时存储在内存中,而不是存储在文件中,以防应用程序之间发生争用”不会出现。你是如何打开数据库的?数据库所在的文件夹是否可写?是,数据库所在的文件夹是否可写。大多数迭代都正确地将数据插入数据库。我只是通过围绕SQLiteConnection的using语句打开数据库。