SQLite versucht, einen schreibgeschützten Datenbankfehler zu schreiben

8

Ich habe eine Konsolenanwendung, die eine SQLite-Datenbank auffüllt. Wenn die Anwendung von selbst ausgeführt wird, erhalte ich keine Fehler. Wenn ich mehrere Instanzen der Anwendung ausführe, wobei jede Anwendung in einem eigenen Ordner ist und jede ihre eigene Datenbank füllt, erhalte ich gelegentlich die folgende Ausnahme:

%Vor%

Ich weiß, dass die DB nicht schreibgeschützt ist, weil sie bereits Daten in diese Datenbank geschrieben hat. Außerdem fährt die App mit dem Speichern von Daten in dieser Datenbank fort. Ich habe den Fehler nicht reproduziert, wenn nur eine einzige Instanz der Anwendung ausgeführt wird.

Ich habe versucht, das Pragma zu verwenden, um sowohl das Journal als auch den temp_store im Speicher anstatt in einer Datei zu haben, falls es Konflikte zwischen den Anwendungen geben könnte, aber ich bekomme immer noch den Fehler. Ich bekomme immer den Fehler in der gleichen Methode, die das erste Mal ein Einfügen für die Verbindung wäre. Um eine allgemeine Vorstellung davon zu geben, was die Anwendung macht, führt sie eine Schleife durch Fälle, sammelt Informationen über diese Fälle (nicht von SQLite) und schreibt dann Ergebnisse in die SQLite-Datenbank.

Ich weiß nicht, was ich noch versuchen soll.

* bearbeiten Ich benutze auch den PRAGMA journal_mode = MEMORY. Wenn ich Daten in die SQLite-Datenbank einfüge, führe ich zuerst eine BEGIN-Anweisung und dann eine Reihe von Einfügungen vor der END-Anweisung aus. Der Fehler tritt bei der ersten Einfügung auf.

    
UWSkeletor 04.08.2015, 21:36
quelle

2 Antworten

6

Es ist ein Berechtigungsproblem.

Stellen Sie sicher, dass Ihre Webanwendung, die gehostet wird, über einen Schreib- / Lösch- / Löschzugriff auf den Ordner verfügt, in dem sich die SQLite-Datenbank befindet.

Weitere Einzelheiten finden Sie in >

    
LakshmiNarayanan 05.08.2015 00:39
quelle
0

Könnte auch sein, dass die Datenbankdatei nicht von MigrationAssembly unterstützt wird.

Die gleiche Ausnahme wird ausgelöst, wenn die EF versucht, eine Datei zu migrieren, von der erwartet wird, dass sie eine SQLite-Datenbank ist, die fi ist. eine Textdatei.

    
Jostein Sætherø 26.10.2017 08:11
quelle

Tags und Links