Umbraco - SQL Server CE - 存在文件共享冲突。不同的进程可能正在使用该文件

时间:2012-07-19 18:57:46

标签: sql-server-ce connection-string umbraco

我安装了Umbraco 4.7.2,配置为将SQL Server CE用于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 OnlyShared Read,但没有运气。你是如何克服这个问题的?这在某种程度上是托管环境的问题还是连接字符串的问题?

1 个答案:

答案 0 :(得分:1)

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

根据此页http://support.godaddy.com/help/article/4883/4gh-frequently-asked-questions,它无法支持:

  

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

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

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

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

您可以尝试在当前设置中将数据库升级到完整的SQL服务器,但我不确定它是否会运行得很好。