簡體   English   中英

嘗試編寫只讀數據庫 - System.Data.SQLite

[英]Attempt to write a read-only database - System.Data.SQLite

我遇到了一個我認為與安全有關的問題,但事實證明我幾乎沒有做過所有事情......

網上有很多關於這方面的信息,但沒有一個可以解決這個問題的答案。

說說我的步驟:

  • 在 VS2k8 上有一個網站,當我調試或從 Cassini 啟動時,一切正常
  • 將 IIS 7.5 (Win7) 設置為指向此網站並添加 IIS_IUSRS 修改權限后,出現錯誤
  • 同樣的事情使用 IIS 6.0!

img:來自 IIS 7.5 的數據庫文件的安全性

替代文字
(來源: balexandre.com

完整的錯誤是:

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

PS請記住,這也必須與 IIS 6 (windows 2003) 一起使用,IIS 7.5 僅用於故障排除,因為我們對一切都有更多的控制......

確保您的 Web 應用程序在其下執行的匿名 Web 用戶帳戶(NETWORK SERVICE 或其他帳戶)具有對 sqlite 數據庫所在文件夾的讀/寫/創建/刪除訪問權限。

另一個答案讓我對這個問題有所了解,但我的解決方案有點不同。 問題是用戶沒有修改文件夾和 .db 文件的權限。 所以我給了用戶EveryoneAuthenticated UsersGuest 的集體組)的權限。 在我的情況下,網絡服務(或類似的)權限沒有解決。

注意:更改后必須重新啟動IIS才能加載所做的更改。

ss----在這里輸入圖片描述

你也應該這樣做。 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;";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM