ページの公開イベントでは、イベントシステムを利用しておまけページを公開しています。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 にコードを配置し、ターゲット タイプを手動で作成することで、なんとか修正しました。
ありがとう、ヴィカス・クマール