2013-01-24 23 views
4

我們要發佈關於發佈網頁事件中使用的事件系統額外的頁面。 當我們從CME發佈頁面時,它運行良好。當我們使用Tridion UI創建頁面時,它會按預期創建和發佈,但事件系統在嘗試創建目標類型對象時會引發錯誤。我們正在事件系統錯誤與外表套上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和會議是不是絕對不爲空,我們將在那裏寫日誌驗證。

請大家有什麼建議,我們可以解決這個問題?

我們設法解決這個問題一點的黑客將代碼嘗試捕捉和手動創建目標類型,如果有例外,因爲我們知道外表套上UI發佈到最初只上演。

感謝, 維卡斯·庫馬爾

+2

能否請您介紹一下實際的錯誤?異常類型,消息和堆棧跟蹤都將有所幫助。 –

+0

您從t.ID獲得的價值是多少? –

+0

@JohnBax我們的確從t.ID –

回答

3

很難說沒有異常,堆棧跟蹤,但我認爲你需要閱讀TargetType第一,不要試圖創建它,就像這樣:

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

很抱歉,但你的建議也沒有從UI ... –

+0

工作第一次創建爲做一個TargetType的對象的代碼是完全正常的。 –

1

它可能是因爲您使用的URI不是來自同一個發佈上下文,因此無效。