在SDL Tridion中创建和部署Windows服务发布页面

ran*_*rld -2 development-environment windows-services scheduled-tasks tridion

我们的要求是安排内容页面的内容发布在Tridion CMS应用程序中以重复的间隔运行.我们目前正在使用Tridion 2009 SP1版本.

根据专家的建议如下:Tridion 2009 SP1:如何为重复发布安排内容页面? 我们创建了一个简单的C#控制台应用程序,它引用了Triond Interop .dll,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tridion.ContentManager.Interop.TDS;
using Tridion.ContentManager.Interop.TDSDefines;
using Tridion.ContentManager.Interop.msxml4;
using System.Configuration;

namespace SchedulePublish
{
class Program
{        
    static void Main(string[] args)
    {
        //Please use your system related corresponding webdav url's and tcm id's where ever required. Below are just sample :)
        TDSE tdse = new TDSE();
        //Give some identity that has access rights on tridion UI
        string Identity = @"Domain Name\Username";
        tdse.Impersonate(Identity);
        tdse.Initialize();

        string targetTypeId = "tcm:0-1-65537";
        Publication Pub_Obj = (Publication)tdse.GetPublication("/webdav/30%20DIRECTV%20sites");
        XMLReadFilter Filter = new XMLReadFilter();
        Component CompObj = (Component)tdse.GetObject("/webdav/30%20DIRECTV%20sites/Home/System/xml/Knavigation.xml",
                                    EnumOpenMode.OpenModeView, Pub_Obj.ID, Filter);
        DateTime schedulePublishDate = Convert.ToDateTime(ConfigurationManager.AppSettings["SharedPath"].ToString());
        CompObj.Publish(targetTypeId, false, false, false, schedulePublishDate, DateTime.MinValue, DateTime.Now, true, EnumPublishPriority.High, false, 3);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

由于我们是新手,请提供指示以实施以下步骤:

1.Tridion CMS服务器没有安装Visual Studio,因此请建议运行此应用程序的方法,并验证我们是否能够根据需要发布内容.

2.在Tridion CMS服务器中使用此应用程序,并安排它每周以所需的时间间隔运行.

Chr*_*ers 6

您不需要Visual Studio来运行新的控制台应用程序,只需编译它并将文件复制到CMS服务器即可.

如果您运行该应用程序,您应该会看到出现在"发布队列"中的项目,如果您没有看到您的项目添加到"发布队列",我建议您向应用程序添加一些日志记录调用,以便查看代码失败的位置(如果您之前没有完成日志记录,请考虑使用Log4J.NET).

一旦验证了它可以按预期工作,最简单的计划方法是使用Windows任务计划程序创建任务.无法从CMS中运行此类任务.或者你可以将你的控制台应用程序转换为Windows服务,但我认为在这种情况下这将是过度的.