Reputation: 75083
I'm having a little bit of a problem that I thought was related to Security but, turns out can't be as I did almost everything ...
Plenty of information on this on the web but nothing has an answer to fix the issue.
Let me tell my steps:
Img: Security on Database File from IIS 7.5
(source: balexandre.com)
Note that all other files and folders have the same rights as above
The full Error is:
Log: Executing query on SQLite Database
Message ***************************************
Attempt to write a read-only database
attempt to write a readonly database
Stack Trace ***********************************
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()
at soDatabaseManager.CommitPersonsToKitchenDatabase() in c:\Adwiza\Kitchen\App_Code\soDatabaseManager.cs:line 242
P.S. Keep in mind that this has to work with IIS 6 (windows 2003) as well, the IIS 7.5 is only for troubleshooting as we have more control in everything...
Upvotes: 14
Views: 23774
Reputation: 151
ss----enter image description here
You should also do this. error for--->Unable to open the database file You must add a connection string.--"Version=3;Mode=ReadWrite;New=False;Compress=True;Journal Mode=Off;";
Upvotes: -1
Reputation: 2654
The other answer give me an idea about the problem, but my solution was a bit differente. The problem was that the user did not have permissions to modify the folder and the .db file. So I give permission to the user Everyone (collective group for Authenticated Users and Guest). The permisions on NETWORK SERVICE (or similars) did not solve in my case.
Note: The IIS
must be restarted, after the change, to load the change made.
Upvotes: 3
Reputation: 1038810
Make sure that the anonymous web user account (NETWORK SERVICE or maybe something else) under which your web application executes has read/write/create/delete access to the folder where the sqlite database resides.
Upvotes: 16