C# Kentico通过API自动同步不工作
我已经在CMS中编写了一个计划任务,用于在测试环境中创建新文档,并将登台任务自动同步到生产环境。文档创建部分工作正常,任务创建部分工作正常,但我不明白为什么临时任务没有自动同步 这是密码C# Kentico通过API自动同步不工作,c#,kentico,C#,Kentico,我已经在CMS中编写了一个计划任务,用于在测试环境中创建新文档,并将登台任务自动同步到生产环境。文档创建部分工作正常,任务创建部分工作正常,但我不明白为什么临时任务没有自动同步 这是密码 List<ISynchronizationTask> tasks = new List<ISynchronizationTask> ( ); TreeProvider treeProvider = new TreeProvider ( ); NodeSelecti
List<ISynchronizationTask> tasks = new List<ISynchronizationTask> ( );
TreeProvider treeProvider = new TreeProvider ( );
NodeSelectionParameters nodeSelectionParameters = new NodeSelectionParameters
{
AliasPath = "/Path",
};
TreeNode parentPage = treeProvider.SelectSingleNode ( nodeSelectionParameters );
ServerInfo serverInfo = ServerInfoProvider.GetServerInfo ( "server", SiteContext.CurrentSiteID );
TreeNode newPage = TreeNode.New ( "Class", treeProvider );
newPage.DocumentName = "Title";
newPage.DocumentCulture = "en-us";
newPage.Insert ( parentPage );
newPage.Publish ( "Created by Scheduled Task" );
tasks.AddRange ( DocumentSynchronizationHelper.LogDocumentChange ( parentPage, TaskTypeEnum.CreateDocument, true, false, treeProvider, serverInfo.ServerID, null, false ) );
if ( tasks.Any ( ) )
{
foreach ( var sTask in tasks )
{
string result = new StagingTaskRunner ( serverInfo.ServerID ).RunSynchronization ( sTask.TaskID );
}
}
List tasks=newlist();
TreeProvider TreeProvider=新的TreeProvider();
NodeSelectParameters NodeSelectParameters=新的NodeSelectParameters
{
AliasPath=“/Path”,
};
TreeNode parentPage=treeProvider.SelectSingleNode(节点选择参数);
ServerInfo ServerInfo=ServerInfoProvider.GetServerInfo(“服务器”,SiteContext.CurrentSiteID);
TreeNode newPage=TreeNode.New(“类”,treeProvider);
newPage.DocumentName=“Title”;
newPage.DocumentCulture=“en us”;
新建页面。插入(父页面);
发布(“由计划任务创建”);
tasks.AddRange(DocumentSynchronizationHelper.LogDocumentChange(parentPage,TaskTypeEnum.CreateDocument,true,false,treeProvider,serverInfo.ServerID,null,false));
if(tasks.Any())
{
foreach(任务中的var sTask)
{
string result=new StagingTaskRunner(serverInfo.ServerID).RunSynchronization(sTask.TaskID);
}
}
RunSynchronization
方法中的result
字符串始终返回null或空字符串
还不确定任务是由
newPage.Publish
还是DocumentSynchronizationHelper.LogDocumentChange
方法创建的,LogChange将更改记录在暂存中,但您可能希望首先使用普通API而不是使用tasks变量获取任务
可能会发生一些事情。首先,我将在创建任务并检查数据库中的staging task表之后立即中断点,实际上创建可能是在单独的线程之后或在单独的线程上完成的,因此在代码运行时或在创建之前尝试提交时,您实际上无法访问它
老实说,我只是创建一个单独的任务来自动推送,或者在任务创建的全局事件中添加逻辑,然后推送它
否则,另一件事是确保启用了暂存,即使您想在未设置暂存的情况下推送某些内容,它也不会。日志更改会在暂存中记录更改,但您可能希望首先使用普通API而不是使用tasks变量抓取任务 可能会发生一些事情。首先,我将在创建任务并检查数据库中的staging task表之后立即中断点,实际上创建可能是在单独的线程之后或在单独的线程上完成的,因此在代码运行时或在创建之前尝试提交时,您实际上无法访问它 老实说,我只是创建一个单独的任务来自动推送,或者在任务创建的全局事件中添加逻辑,然后推送它
否则,另一件事是确保启用了登台,即使您想在登台未设置的情况下推送某些内容,也不会这样做。有意义。任务可以异步创建。我将尝试实现一个有意义的处理程序。任务可以异步创建。我将尝试实现中建议的处理程序