1:使用sqlite數據庫,經常會出現數據庫連接不上的情況,這個時候需要檢查sqlite.dll是否添加了引用,且添加的dll的版本與所使用的sqlite版本是否一致。
這兩個dll是使用sqlite必須要添加的引用,
2:為了不使sqlite發布后,找不到數據庫,需要手動設置這兩個dll自動拷貝到本地。
右擊-》屬性-》
3:發布的網站記得在Web.config 文件下添加以下節點才能正確訪問到sqlite數據庫
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
</system.data>
4:數據庫放在app_data目錄下,發布時引用文件的地址為,不至於是絕對路徑無法訪問:
<connectionStrings>
<add name="dbEntities" connectionString="metadata=res://*/Models.DBModel.csdl|res://*/Models.DBModel.ssdl|res://*/Models.DBModel.msl;provider=System.Data.SQLite;provider connection string="data source=|DataDirectory|\db.db"" providerName="System.Data.EntityClient" />
</connectionStrings>
5:今天配置一台x64的機器時,報sqlite的錯誤,“Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. 試圖加載格式不正確的程序。”
一開始總以為是sqlite數據庫連接不上或是dll版本的問題,后來才發現,System.Data.SQLite是分了操作系統版本的,有X86,X64之分;因此應用程序池應該選擇兼容WIN32;
錯誤截圖:
具體操作如下:
在iis管理器,選中應用程序池-》對正在使用的應用程序池 點擊 高級設置 -》啟用32位應用程序 為 true.
這時刷新頁面 錯誤解除。