Tridion UI的事件系统错误(体验管理器)

时间:2013-01-24 10:05:56

标签: tridion tridion-2011 tridion-ui tridion-events

在页面的发布活动中使用活动系统发行额外的页。 当我们从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

2 个答案:

答案 0 :(得分:3)

很难说没有异常和堆栈跟踪,但我认为你需要首先阅读TargetType而不是尝试创建它,如下所示:

(TargetType) page.Session.GetObject(t.Id)

答案 1 :(得分:1)

您使用的URI可能不是来自同一出版物上下文,因此无效。