-2

我们的要求是安排内容页面的内容发布以在 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);
    }
}
}

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

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

2. 在 Tridion CMS Server 中托管此应用程序,并安排它每周以所需的时间间隔运行。

4

1 回答 1

6

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

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

一旦您确认它按需要工作,最简单的安排它的方法是使用Windows 任务计划程序创建一个任务。无法从 CMS 中运行此类任务。或者,您可以将控制台应用程序转换为 Windows 服务,但我认为在这种情况下这将是矫枉过正。

于 2013-03-06T04:49:14.840 回答