2017-10-16 109 views
1

我使用带有LoadBalancing的Orckestra Composite C1 CMS,并遇到计划发布问题。复合C1 - 使用LoadBalancing进行计划发布抛出'给定数据键值'不存在数据'

给定的情况下

  • 两个节点/服务器,负载均衡。
  • (例如“www.mysite.com”)
  • 访问每个节点分别用于测试目的(例如“www01.mysite.com”)负载平衡访问

我创建了一个C1预定发布的数据类型(“有发布” - 标记为真)。通过添加此类型的新数据对象并设置日期,该记录将按预期保存。然而,当达到取消发布日期和时间,有时服务器(不总是)抛出了以下异常:

System.InvalidOperationException: No data exist given the data key values 
    at Composite.Verify.ThrowInvalidOperationException(String message) 
    at Composite.Data.DataFacade.GetDataByUniqueKey(Type interfaceType, Object dataKeyValue) 
    at Composite.C1Console.Scheduling.DataUnpublishSchedulerWorkflow.Execute() 
    at Composite.C1Console.Scheduling.BaseSchedulerWorkflow.finalizeCodeActivity_ExecuteCode(Object sender, EventArgs e) 
    at System.Workflow.ComponentModel.Activity.RaiseEvent(DependencyProperty dependencyEvent, Object sender, EventArgs e) 
    at System.Workflow.Activities.CodeActivity.Execute(ActivityExecutionContext executionContext) 
    at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime) 
    at System.Workflow.Runtime.Scheduler.Run() 

如果在复合C1的源挖掘,你会发现,C1试图做一些事情与调度任务并没有这样做。检查这个源文件:

https://searchcode.com/file/116651989/CompositeC1/Composite.Workflows/C1Console/Scheduling/DataUnpublishSchedulerWorkflow.cs

由于这种失败过程的结果,C1数据应该是未公开的是一个节点,而在另一可见上看不见的,就像它不会已经发布(正确)。

发布记录时会发生同样的问题。我搜索了开放的网页,但还没有找到答案。

回答

0

我不确定上述异常是否实际上是由同步问题引起的。事实上,如果我尝试使用无效的未发布日期(如过去的日期)保存C1数据,我会得到此确切例外。

但是,可以通过更改以下设置来解决问题。

选择一个复合C1网络节点作为您的服务器。内容管理只能在此服务器上进行。每个其他节点将成为服务器的客户端。

现在从shared此配置键值改为server/client

节点A

<system.net> 
[...] 
    <appSettings> 
    <add key="Composite.LoadBalancing.Mode" value="server" /> 
    </appSettings> 
    <system.net> 

每个其它节点

<system.net> 
[...] 
    <appSettings> 
    <add key="Composite.LoadBalancing.Mode" value="client" /> 
    </appSettings> 
    <system.net>