我已经开发了WPF应用程序作为工作单元和存储库模式。我使用的是SQL Server CE 3.5 SP2。我的应用程序在单线程上使用时工作正常。但是当我在服务器上使用它时,用户通过远程桌面连接进行连接,它变成了多线程应用程序,这会产生问题。
我的数据库位于Environment.SpecialFolder.CommonApplicationData
。
当两个用户同时使用数据库触发任何事务时,我遇到以下错误:
内部错误:无法打开共享内存区域。
和
数据库已由其他用户打开。
避免这种情况的最佳方法是什么?或者如果情况无法避免,那么处理这种异常的最佳方法是什么。
答案 0 :(得分:0)
正如@marc_s所评论的那样,你真的应该尝试使用至少SQL Server Express
甚至更高的版本来使多个并发用户能够同时从你的应用程序成功访问数据库。
在SQL Server CE in a multi user scenario - is this really, really stupid?帖子中提到了一个类似的问题,该帖子有一个很好的答案,你应该看看更详细的信息。