4

ページの公開イベントでは、イベントシステムを利用しておまけページを公開しています。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ではないことは間違いありません。これは、そこにログを書き込むことで確認しました。

問題を解決するために私たちができることを提案してください。

Tridion UI が最初にのみステージングに公開されることがわかっているため、例外が発生した場合は、ちょっとハックして try catch にコードを配置し、ターゲット タイプを手動で作成することで、なんとか修正しました。

ありがとう、ヴィカス・クマール

4

2 に答える 2

3

例外とスタック トレースなしで判断するのは難しいですが、TargetType次のように、最初に読み取り、作成しようとしない必要があると思います。

(TargetType) page.Session.GetObject(t.Id)
于 2013-01-24T10:13:17.097 に答える
1

使用する URI が同じ Publication コンテキストからのものではないため、無効である可能性があります。

于 2013-01-30T11:37:07.113 に答える