Dab*_*rnl 5 .net connection entity-framework web-config
我使用实体框架将基于数据集的方法更改为我的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="
data source=G:\PMPersistence\xPMDb.s3db""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
(我将字符串分成几行以使其更具可读性).
在服务器上,即使我将数据库放在与开发计算机上完全相同的位置,这也无法正常工作.是否需要编辑连接字符串的其余部分(我不了解第一件事)?关于如何构建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>
Run Code Online (Sandbox Code Playgroud)
这似乎工作(托马斯建议它应该位于machine.config文件中),因为之前我添加了这个条目我得到一个错误,说无法找到System.Data.SQLite.
EDIT2:我在服务器上安装了System.Data.SQLite dll,而不是只将xcopying到BIN目录.Framework/Config和Framework64/Config文件夹中的machine.config现在都具有上面的DbFactory条目.它不会产生差异(除非我必须重新启动服务器??)
连接字符串确实没问题.问题是您必须将system.data.sqlite.dll和system.data.sqlite.linq.dll部署到承载数据库连接的Web服务的Bin文件夹中.
归档时间: |
|
查看次数: |
7063 次 |
最近记录: |