SQL CE通过网络共享

问题描述 投票:1回答:4

我之前已经看过这个问题,但无法找到明确解释什么是/不可能以及哪些变通办法可用。

我有一个现有的C#应用​​程序,它使用SQL CE来存储本地信息。该数据库仅由单个应用程序访问,并存储在用户的appdata文件夹中。

某些环境将appdata文件夹重定向到网络共享,导致SQL CE抛出异常:“内部错误:无法打开共享内存区域。”

我已经读过SQL CE 3.5 SP2应该允许再次连接到网络共享,而SP1没有,但是我无法让它工作。有没有人成功获得任何版本的SQL CE在网络共享上工作?如果是这样,您使用什么版本/代码来使其工作?

我已经尝试在连接字符串中使用mode = Exclusive而没有运气。

或者,有没有人找到不同的解决方法?数据需要存储在用户的配置文件中,因为它是特定于每个用户的,并且不应该由系统上的任何其他用户访问。

c# .net sql-server-ce
4个回答
2
投票

我更新了应用程序以使用SQL Express和本地用户实例,但是它为我们的客户创建了太多的部署问题。在我们查看不同的数据库选项时,我最终必须编写一个层来使用Access MDB。

我编写桌面应用程序的建议是不要使用SQL Express或SQL CE进行本地存储。


1
投票

我已经在网络驱动器上成功使用了SQL CE 3.5,同时在两台联网的计算机上运行应用程序的实例。我能够从两个位置更新数据库中的记录。

我不确定如果两个用户同时访问同一条记录会发生什么,但在我的情况下这不太可能。只需在连接字符串中包含数据库位置即可。


0
投票

将数据存储在未重定向的文件夹中。


0
投票

SQL Compact是一个单用户进程内数据库引擎。

您是否尝试将sqlce DB放在共享文件夹上并将其数据源设置在它所在的位置?

就像是:

"Data Source=\\MySharedfolder\\DB.sdf;Persist Security Info=False;"
© www.soinside.com 2019 - 2024. All rights reserved.