0

我已将配置为使用 SQL Server CE 的 Umbraco 4.7.2 安装到 GoDaddy 4GH 共享主机帐户中。最初,该站点按预期运行。但是,我很快意识到不允许后续/并发连接,并且收到以下内容:

System.Data.SqlServerCe.SqlCeException:存在文件共享冲突。不同的进程可能正在使用该文件。[ ..\App_Data\Umbraco.sdf ]

我做了一些研究,我知道 SQL Server CE 不允许多个连接,但我很难相信 Umbraco 会提供 SQL Server CE 作为选项,如果它不能允许多个访问者导航一个地点。

我尝试根据其他资源修改连接字符串,但没有任何运气。这是我当前的连接字符串:

datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;data source=|DataDirectory|\Umbraco.sdf;file mode=read write;persist security info=false;

我尝试了不同的文件模式,例如Read Only没有Shared Read运气。你如何克服这个问题?这是托管环境的问题还是连接字符串的问题?

4

1 回答 1

1

看起来您的托管环境可能不支持使用 SQL CE 数据库。

根据此页面http://support.godaddy.com/help/article/4883/4gh-frequently-asked-questions它不能支持:

并发文件在多个会话或并发线程中写入同一个文件。受影响资源的示例:基于文件的数据库和跨会话日志文件(这些问题在 4GH 环境中由于额外的容量而被夸大了)。

看起来它实际上是一个分布式环境,它在多个服务器之间共享文件系统,这会导致锁定问题。

所以我想解决方案是转向传统的托管产品,只有一台服务器。

当使用 SQL 服务器(非 CE)时,Umbraco 确实支持在分布式环境中运行,但这需要您预先了解所有服务器,因为它需要调用其他实例以刷新缓存等,并且我不要认为您可以使用当前的托管产品来实现这一点。

您可以尝试在当前设置中将数据库升级到完整的 SQL 服务器,但我不确定它是否能正常工作。

于 2012-08-03T20:18:18.297 回答