[英]How to access SQLite DB from IIS hosted WCF Service?
我正在嘗試部署使用SQLite DB讀取一些數據以及連接到另一個數據庫(MS SQL)的WCF服務。 服務本身由在同一服務器上運行的ASP網站使用。
問題是只有我的用戶才能充分使用該網站和服務。 其他所有用戶似乎都無法打開sqlite數據庫文件。
您需要哪種類型的權限或特殊訪問權限,才能從IIS訪問sqlite數據庫?
使用域帳戶設置應用程序池,以便可以授予對MS SQL數據庫的訪問權限(集成安全性)。
該帳戶可以訪問存儲數據庫的文件夾。 而且我什至嘗試過讓所有人和所有用戶都無法使用它。
我覺得我缺少明顯的東西,但我不知道是什么...
更新:錯誤如下:
System.Data.Entity.Core.EntityException
EntityFramework.dll中發生類型為'System.Data.Entity.Core.EntityException'的異常,但未在用戶代碼中處理
附加信息:基礎提供程序在打開時失敗。
內部異常:
System.Data.SQLite.SQLiteException
無法打開數據庫文件。
我能夠解決此問題,在此將其記錄在后。 我已經采取了一些措施來做到這一點,但是我目前還沒有建立能夠始終如一地重現問題的環境,因此我不確定是否是真正的解決方案。
除了免責聲明,這是我的更改:
我在IIS上(完全在另一個目錄上)而不是在“ C:\\ inetpub \\ wwwroot”上創建了一個新的應用程序池和網站。 我使用“ C:\\ Sites \\ MySite”來部署我的WCF服務和使用它的網站。
我將應用程序池標識帳戶更改為新的AD Service帳戶。
我將數據庫放在Service Web App目錄的內部,該目錄稱為data。 我從目錄和數據庫文件中刪除了所有繼承的權限,並同時給了服務帳戶和目錄和數據庫文件的“所有人完全控制”權限。
我為sqlite編輯了連接字符串,使其設置為“ Journal Mode = Off;”。
我停止並在IIS上啟動了應用程序池和WebSite。
此后,該服務正常運行,並且我能夠訪問數據庫文件和與SQL Server的連接。 如果有機會,我將建立某種虛擬網絡來復制該虛擬網絡,看看是否能一開始就弄清楚是什么導致了錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.