在页面的发布活动中使用活动系统发行额外的页。 当我们从CME发布页面时,它运行良好。当我们使用Tridion UI创建页面时,它会按预期创建和发布,但事件系统在尝试创建目标类型对象时会引发错误。
try
{
foreach (var t in e.Targets)
{
var targets = new List<TargetType>();
some logic
targets.Add(new TargetType(t.Id, page.Session)); // error is in this line
PublishInstructionBase pib = e.PublishTransactions.First().Instruction;
PublishInstruction pi = new PublishInstruction(page.Session);
pi.StartAt = pib.StartAt;
pi.RollbackOnFailure = pib.RollbackOnFailure;
PublishEngine.Publish(
items,
pi,
targets,
PublishPriority.Low
);
}
}
我们得到的例外是 InvalidURIException
t和Session 并非绝对不是null,我们通过在那里写日志来验证。
请建议我们如何解决问题?
我们设法解决这个问题,将代码放入try catch并手动创建目标类型,如果有异常,我们知道Tridion UI最初只发布到暂存。
谢谢, Vikas Kumar
答案 0 :(得分:3)
很难说没有异常和堆栈跟踪,但我认为你需要首先阅读TargetType
而不是尝试创建它,如下所示:
(TargetType) page.Session.GetObject(t.Id)
答案 1 :(得分:1)
您使用的URI可能不是来自同一出版物上下文,因此无效。