簡體   English   中英

如何從IIS托管的WCF服務訪問SQLite DB?

[英]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

無法打開數據庫文件。

我能夠解決此問題,在此將其記錄在后。 我已經采取了一些措施來做到這一點,但是我目前還沒有建立能夠始終如一地重現問題的環境,因此我不確定是否是真正的解決方案。

除了免責聲明,這是我的更改:

  1. 我在IIS上(完全在另一個目錄上)而不是在“ C:\\ inetpub \\ wwwroot”上創建了一個新的應用程序池和網站。 我使用“ C:\\ Sites \\ MySite”來部署我的WCF服務和使用它的網站。

  2. 我將應用程序池標識帳戶更改為新的AD Service帳戶。

  3. 我將數據庫放在Service Web App目錄的內部,該目錄稱為data。 我從目錄和數據庫文件中刪除了所有繼承的權限,並同時給了服務帳戶和目錄和數據庫文件的“所有人完全控制”權限。

  4. 我為sqlite編輯了連接字符串,使其設置為“ Journal Mode = Off;”。

  5. 我停止並在IIS上啟動了應用程序池和WebSite。

此后,該服務正常運行,並且我能夠訪問數據庫文件和與SQL Server的連接。 如果有機會,我將建立某種虛擬網絡來復制該虛擬網絡,看看是否能一開始就弄清楚是什么導致了錯誤。

暫無
暫無

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

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