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.
这时刷新页面 错误解除。