繁体   English   中英

在服务器上部署时,带有EF6的SQLite无法正常工作

[英]Sqlite with EF6 doesn't work when deployed on server

我一直在开发一个使用Sqlite存储一些数据的Web应用程序。 当我将其部署到服务器时,我收到以下错误消息。 连接字符串中文件的路径正确,并且在我的开发计算机上正常运行。 有什么事吗

无法加载在ADO.NET提供程序的应用程序配置文件中注册的实体框架提供程序类型'System.Data.SQLite.EF6.SQLiteProviderServices,System.Data.SQLite.EF6',其名称不变为'System.Data.SQLite' 。 确保使用了程序集限定名称,并且该程序集可用于正在运行的应用程序。 有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=260882

好的,我找到了解决方案。 当我在开发机中安装Sqlite时,我使用了一个安装程序(安装了Dll除外)用于Visual Studio的设计器工具。 部署到服务器时,未包含所有必需的DLL。 Sqlite具有针对x86或x64系统的非托管库。 这些已安装到开发机器,但在您的项目中不可用。 当您在服务器上执行所谓的XCOPY部署时,非托管提供程序将不可用。 您需要从以下链接下载它们: https : //system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,并将其包含在bin文件夹中。 但这还不够。

默认情况下,.NET项目设置为“任何CPU”。 您需要将应用程序定位为运行x86或x64(我的选项),具体取决于服务器操作系统(32位或64位)。 只有这样,Sqlite提供程序才会加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM