2010-02-25 42 views
12

我有一點問題,我認爲是與安全有關,但事實證明,不能像我做的幾乎所有事情一樣......試圖寫一個只讀數據庫 - System.Data.SQLite

關於網絡上的大量信息,但沒有解決問題的答案。

讓我告訴我的步驟:

  • 有一個網站上VS2k8,當我調試或卡西尼號開始,一切工作正常
  • 當設置IIS 7.5(Win7的),使其指向這個網站,添加IIS_IUSRS修改權限後,我得到錯誤
  • 使用IIS 6.0的同樣的事情!

圖:信息安全數據庫文件從IIS 7.5

alt text http://www.balexandre.com/temp/2010-02-25_1028.png

注意,其他所有文件和文件夾擁有同樣的權利,上述

完整的錯誤是:

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.記住,這與IIS 6(Windows 2003中),以及工作,IIS 7.5是隻用於故障排除,因爲我們擁有的一切更多的控制......

+0

您是否檢查文件的只讀狀態? – 2010-02-25 09:51:53

+1

是的,我做過,它不是隻讀的,非IIS中的文件是: -/ – balexandre 2010-02-25 10:03:32

回答

11

確保匿名Web用戶帳戶(網絡服務或maybe something else),您的Web應用程序在其下執行已讀取/寫入/創建/刪除訪問sqlite數據庫所在的文件夾。

+0

在IIS 7.5下,您可以選擇使用USER或應用程序,我的匿名用戶是IUSR(如您所見,它存在在安全面板中),並且在使用應用程序池標識時出現同樣的錯誤(img:http://www.balexandre.com/temp/2010-02-25_1150.png) – balexandre 2010-02-25 10:50:34

0

另一個答案給了我一個關於這個問題的想法,但是我的解決方案有點不同。 問題在於用戶沒有修改文件夾和.db文件的權限。 所以我給用戶的許可每個人(集體組爲認證用戶來賓)。 網絡服務(或類似)在我的情況下沒有解決。

注意:IIS必須在更改後重新啓動以加載所做的更改。

相關問題