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服务器中使用此应用程序,并安排它每周以所需的时间间隔运行.
您不需要Visual Studio来运行新的控制台应用程序,只需编译它并将文件复制到CMS服务器即可.
如果您运行该应用程序,您应该会看到出现在"发布队列"中的项目,如果您没有看到您的项目添加到"发布队列",我建议您向应用程序添加一些日志记录调用,以便查看代码失败的位置(如果您之前没有完成日志记录,请考虑使用Log4J.NET).
一旦验证了它可以按预期工作,最简单的计划方法是使用Windows任务计划程序创建任务.无法从CMS中运行此类任务.或者你可以将你的控制台应用程序转换为Windows服务,但我认为在这种情况下这将是过度的.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |