我正在开发一个概念验证应用程序,它包含一个带有控制台主机和客户端的WCF服务,两者都在一个USB设备上。在同一设备上,我还将拥有将连接到此服务的客户端应用程序。该服务使用实体框架连接到数据库,在此POC中只返回一个名称列表。如果它有效,它将用于更大的项目。
创建客户端和服务很简单,这在USB上运行良好。但是获得连接到数据库的服务却没有。我找到this site,建议我应该修改machine.config但是会停止XCopy部署。这个项目不能改变PC的任何设置,所以这个建议很糟糕。我也无法创建部署设置。整个事情只需要从USB磁盘运行。
那么,我该如何让它运行?
(该服务只是从数据库中选择一个名称列表,然后返回给客户端。如果这个POC有效,它将做更复杂的事情!)
答案 0 :(得分:3)
噢。解决了它。只需要将其添加到.config文件中。
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.3.5"></remove>
<add name="Microsoft SQL Server Compact Data Provider"
invariant="System.Data.SqlServerCe.3.5"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>
将其添加到本地配置文件也可以正常工作。 : - )
答案 1 :(得分:0)
您是否考虑过使用In Memory数据库(如果它适合您的应用程序)。回过头来,我曾参与过将Web应用程序作为桌面产品离线发布的项目。我们使用HSQLDB作为内存数据库,对我们来说它运作良好(数据库也很小)