gpt4 book ai didi

.net - 部署后 Entity Framework 与 SQLite 数据库的连接不起作用

转载 作者:行者123 更新时间:2023-12-04 17:13:41 31 4
gpt4 key购买 nike

我使用 Entity Framework 将基于数据集的方法更改为我的 sqlite 数据库。我使用 Visual Studio 2008 的向导创建了实体,并将连接字符串存储在 app.config 中。然后客户端程序通过 WCF 与数据库进行通信。当我在控制台应用程序中托管 WCF 服务时,这在开发计算机上运行良好。在远程计算机上的 IIS7 中托管服务后,我收到错误消息:“底层提供程序打开失败”。它是在第一次尝试从数据库中进行读取操作时生成的。
自动生成的连接字符串是:

     <add name="xPMDbEntities" connectionString="metadata=res://*/PM_EDM.csdl|
res://*/PM_EDM.ssdl|
res://*/PM_EDM.msl;
provider=System.Data.SQLite;
provider connection string=&quot;
data source=G:\PMPersistence\xPMDb.s3db&quot;"
providerName="System.Data.EntityClient" />

(我将字符串分成几行以使其更具可读性)。

在服务器上这不起作用,即使我将数据库定位在与开发计算机上完全相同的位置。连接字符串的其余部分(我不明白的第一件事)是否也需要编辑?一个关于如何构建 EF 连接字符串的良好资源的链接也将非常有帮助!

编辑:
我还将以下部分添加到 web.config 文件中:
<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>

这似乎有效(Thomas 建议它应该位于 machine.config 文件中),因为在我添加此条目之前,我收到一条错误消息,指出无法找到 System.Data.SQLite。

编辑2:
我在服务器上安装了 System.Data.SQLite dll,而不仅仅是将 dll 复制到 BIN 目录。 Framework/Config 和 Framework64/Config 文件夹中的 machine.config 现在都具有上述 DbFactory 条目。它没有区别(除非我必须重新启动服务器??)

最佳答案

连接字符串确实没问题。问题是您必须将 system.data.sqlite.dll 和 system.data.sqlite.linq.dll 部署到承载数据库连接的 Web 服务的 Bin 文件夹中。

关于.net - 部署后 Entity Framework 与 SQLite 数据库的连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218838/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com