2017-05-17 26 views
0

我一直在开发一个使用Sqlite存储一些数据的Web应用程序。当我将它部署到服务器时,我收到下面的错误消息。连接字符串中文件的路径是正确的,它在我的开发机器上正常工作。什么可能是错误的?使用EF6的Sqlite在服务器上部署时不起作用

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

+0

那么错误是不言而喻的,不是吗? – Fabjan

+0

@Fabjan如果是的话,我不会问这个问题。该文件在那里,web.config文件与dev中的文件相同,并且文件的路径也相应地更改。有任何想法吗? – Midas

+0

@Midas确保在部署服务器上安装SQLite提供程序。 –

回答

0

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

.NET项目默认设置为任何CPU。您需要根据服务器操作系统(32位或64位)将您的应用程序定位到运行x86或x64(我的选项)。只有这样Sqlite提供程序才会加载。

相关问题