0

我有一个 ASP.Net 4.0 网站,它使用 SQL Server CE 和 EF 代码优先作为其数据存储。当站点上有 2 个或更多用户时,我每隔 5 次或 6 次就会间歇性地收到以下异常。

存在文件共享冲突。不同的进程可能正在使用该文件。[D:\目录...\file.sdf]。

在整个代码中,我创建、使用并在DbContext每次需要时及时处理。即使它是默认值,我也已添加File Mode = Read Write到连接字符串中。

任何想法我可能做错了什么。

4

1 回答 1

1

我想我弄清楚发生了什么。我找到了一个链接(不幸的是我不记得在哪里),它提到 Go Daddy 共享主机使用负载平衡器和多个服务器来为站点提供服务。即使数据库文件显示在安装有驱动器号的驱动器上,显然它必须位于所有网络服务器共享的文件服务器上。

多个客户端通过网络使用 SQL CE 是不受支持的配置。当我从 SQL Compact 升级到 Go Daddy 提供的 SQL Server 实例时,问题(以及我上面没有提到的另一个数据一致性问题)就消失了。

我有点惊讶,当我搜索它时,我没有发现这个问题。Microsoft 正在将 SQL Compact 作为小型网站的良好后端进行营销。如果我是正确的,这似乎是这方面的重大责任。

于 2012-01-26T12:57:58.630 回答