• <span id="ycodp"></span>
    <span id="ycodp"><small id="ycodp"></small></span>
    1. <label id="ycodp"></label>
      <rt id="ycodp"><tr id="ycodp"><strike id="ycodp"></strike></tr></rt>
      <i id="ycodp"><strong id="ycodp"><ul id="ycodp"></ul></strong></i>
    2. 幫助中心

      這里有最新的使用文檔和教程

      < 返回

      SQLite 在Windows 2008部署問題FAQ匯總

      2023-05-08 18:12 作者:31IDC 閱讀量:1139 所屬分類:Windows系統(tǒng)

      SQLite 在Windows Server 2008 R2 部署問題FAQ匯總

      用了很長(zhǎng)一段時(shí)間SQLite,以取代一些輕量級(jí)項(xiàng)目中使用的Access數(shù)據(jù)庫(kù)。原因一方面是想嘗試一下這個(gè)收到追捧的輕量級(jí)文件數(shù)據(jù)庫(kù),另一方面是想使用對(duì)象關(guān)系映射(ORM),SQLite的支持比Access更好一些。

      先做了Demo,做了簡(jiǎn)單的select操作,不過根據(jù)經(jīng)驗(yàn),.Net應(yīng)用程序在部署時(shí)總會(huì)遇到這個(gè)那個(gè)的問題,果然部署到服務(wù)器上時(shí),出現(xiàn)了一系列的問題。至于SQLite如何使用,不在本文的討論范圍內(nèi)。

      我們本次討論的是在本機(jī)開發(fā)和調(diào)試全部完成后,部署到服務(wù)器上(Windows Server 2008 R2)時(shí)的時(shí)候出現(xiàn)的問題。

      SQLite應(yīng)用的部署步驟和普通應(yīng)用是一樣的(本應(yīng)該是如此,否則如何輕便呢?),但可能會(huì)遇到一系列的問題,以下問題都是我在部署時(shí)親身經(jīng)歷的問題,測(cè)試用服務(wù)器是一臺(tái)全新部署的Windows Server 2008 R2。

       

      1、命名空間“System.Data”中不存在類型或命名空間名稱“SQLite”(是否缺少程序集引用?)

      請(qǐng)檢查是否把System.Data.SQLite.dll放到了bin目錄下。本機(jī)因?yàn)樘砑恿薙QLite安裝目錄下的dll引用因此可以正常調(diào)試。> SQLite.NET下載頁面

       

      2、未能加載文件或程序集“System.Data.SQLite.Linq”或它的某一個(gè)依賴項(xiàng)。生成此程序集的運(yùn)行時(shí)比當(dāng)前加載的運(yùn)行時(shí)新,無法加載此程序集。

      以上問題是由于服務(wù)器未安裝.Net Framework 4.0(或許應(yīng)用程序池選擇了低版本也會(huì)出現(xiàn),未經(jīng)測(cè)試) ,而.Net Framework版本也是比較重要的細(xì)節(jié),可以發(fā)現(xiàn)在下載SQLite.NET時(shí)候,分的比較嚴(yán)格,for .Net Framework 3.5SP1和4.0是分開的,因此必須選用和目標(biāo)框架版本一致的版本。安裝完.Net 4.0后,記得切換IIS中應(yīng)用程序池的版本。

       

      3、未能加載文件或程序集“System.Data.SQLite.dll”或它的某一個(gè)依賴項(xiàng)。找不到指定的模塊。

      該問題出現(xiàn)的原因是沒有安裝Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)(當(dāng)然如果你不是64位系統(tǒng)請(qǐng)安裝for x86)。

       

      4、Attempt to write a read-only database

      請(qǐng)檢查數(shù)據(jù)庫(kù)所在目錄的權(quán)限,加入IIS_IUSRS組的完全控制權(quán)限(理論上寫入即可)。網(wǎng)上查到說添加Users組,事實(shí)上正確的做法是添加IIS_IUSRS組,這個(gè)才是IIS工作進(jìn)程所使用的組,應(yīng)該與Users是子集的關(guān)系,所以使用IIS_IUSRS肯定會(huì)更安全一些。

       

      5、未能加載文件或程序集“System.Data.SQLite”或它的某一個(gè)依賴項(xiàng)。試圖加載格式不正確的程序。

      這個(gè)問題長(zhǎng)的和第3個(gè)問題很像,只是離勝利更進(jìn)一步了。產(chǎn)生這個(gè)問題的原因是使用了錯(cuò)誤版本的System.Data.SQLite.dll,即在x64的服務(wù)器上使用了x86的dll(反之亦然),這個(gè)問題倒是有2個(gè)解決方法。第一個(gè)也是我所推薦的,使用正確版本的dll;第二個(gè)方法是在IIS應(yīng)用程序池的高級(jí)設(shè)置中,“啟用32位應(yīng)用程序”一項(xiàng)設(shè)置為True。可能你再這么做之后,又回到了第三個(gè)問題,別擔(dān)心,x86 Visual C++ Runtime裝上了就好了。

      注意:如果選擇了啟用32位應(yīng)用程序,那么就只能使用32位的dll,一個(gè)應(yīng)用程序池中是不能32位和64位混用的。

       

      6、沒有報(bào)任何錯(cuò),但是訪問SQLite的速度很慢,哪怕是簡(jiǎn)單的Select操作。

      測(cè)試數(shù)據(jù)是只有2個(gè)字段,10條數(shù)據(jù)的SQLite3數(shù)據(jù)庫(kù)。很明顯這不是應(yīng)有的表現(xiàn),經(jīng)過一系列的測(cè)試和排查,發(fā)現(xiàn)該問題是由于目錄權(quán)限造成的。當(dāng)你只進(jìn)行查詢之類的只讀操作時(shí),是不會(huì)報(bào)錯(cuò)的。解決方法參照以上第4條即可。

       

      至于產(chǎn)生的原因,看到網(wǎng)上說SQLite在操作時(shí)是需要?jiǎng)?chuàng)建臨時(shí)文件的,可能是權(quán)限受限后出現(xiàn)了些許問題了吧。

       

      31IDC - 12 年深耕海外 IDC 高端資源

      主站蜘蛛池模板: 奇米综合四色77777久久| 69国产成人综合久久精品91| 亚洲AV综合色区无码一区| 日日狠狠久久偷偷色综合免费 | 亚洲国产综合在线| 色婷婷久久综合中文久久蜜桃av | 色婷婷综合缴情综免费观看 | 国产精品天干天干综合网| 国产色婷婷五月精品综合在线 | 涩涩色中文综合亚洲| 午夜激情影院综合| 亚洲啪啪综合AV一区| 综合五月激情二区视频| 综合激情区视频一区视频二区 | 亚洲综合伊人制服丝袜美腿| 狠狠色成人综合网图片区 | 色噜噜狠狠狠狠色综合久| 中文自拍日本综合| 狠狠色噜狠狠狠狠色综合久| 伊人久久大香线蕉综合5g| 亚洲精品综合久久中文字幕| 国产成人综合亚洲AV第一页| 天天做天天爱天天综合网| 亚洲综合无码无在线观看| 亚洲另类激情综合偷自拍| 一本色道久久综合一区| 亚洲AV综合永久无码精品天堂| 狠狠色狠狠色综合网| 亚洲综合另类小说色区| 香蕉久久综合精品首页| 国产成人亚洲综合| 精品久久综合1区2区3区激情| 综合一区自拍亚洲综合图区| 色欲天天婬色婬香视频综合网| 色欲天天天综合网| 国产精品综合AV一区二区国产馆| 久久综合精品国产二区无码| 99久久综合精品免费| 色综合合久久天天综合绕视看| 亚洲综合久久1区2区3区| 制服丝袜人妻综合第一页|