2013-02-13 72 views
4

我收到以下錯誤消息。我在其他SO帖子中看到這一點(here)&我聯繫了SDL支持,但我仍然無法解決問題。有人可以提供簡單的解決方案嗎?我認爲是導致這一步驟如下:嘗試將二進制文件部署到已存儲其他二進制文件的位置現有二進制文件

1)鏈接從&頁面發佈到PDF 1001
2)刪除PDF 1001從CM
3)上傳PDF 1002同樣將其刪除名稱爲1001.
4)現在,如果您嘗試&發佈,您將收到錯誤消息。

所以我需要取消發佈PDF 1001,但它已從CM中刪除。我該如何解決這個問題? SDL支持建議修復涉及編輯發佈事務期間生成的ZIP文件。但是我儘可能不發佈出版物&的所有頁面,證實他們已經不在了。錯誤仍然存​​在...

ERROR: Phase: Deployment Prepare Commit Phase failed, Unable to prepare transaction: tcm:0-11111-66560, Attempting to deploy a binary 1002 to a location where a different binary is already stored Existing binary: 1001:, Attempting to deploy a binary 1002 to a location where a different binary is already stored Existing binary: 1001:, Unable to prepare transaction: tcm:0-13573-66560, Attempting to deploy a binary 1002 to a location where a different binary is already stored Existing binary: 1001:, Attempting to deploy a binary 1002 to a location where a different binary is already stored Existing binary: 1001:

回答

8

所以文件從CM刪除,但CD還是有它的一個引用(根據CD仍然存在,並且仍然使用的東西)。

你應該後發佈你的頁面之前刪除1001,但你加1002這應該從CD數據庫中的參考。然後,您應該可以添加1002並再次發佈該頁面。

[編輯]對不起,現在只讀,你說你沒有發表一切。顯然不是,因爲仍然有一個參考......打開一個虛擬機,將返回更新。

[EDIT2] 還是不明白它是如何仍然是一個矛盾,如果你取消發佈,但是這是我觀察到我的服務器上:

  • 添加二進制文件頁面,發佈補充
    • 參考在CD 「REFERENCE_ENTRIES」 表
  • 取下頁二進制,發佈
    • 參考刪除從 「REFERENCE_ENTRIES」 表中,二進制刪除
  • 取消發佈頁面(重新添加二進制後,重新發布)
    • 借鑑 「REFERENCE_ENTRIES」 表中刪除,二進制刪除

所以,在我的情況下,我看到了我所期望的。嘗試在刪除二進制文件後發佈頁面,如果可能,請檢查REFERENCE_ENTRIES表中的內容。

+0

一切都被髮布到文件系統。我看到數據文件夾有一些對1001的引用。也許就是這樣?我之前說過,我沒有發佈任何東西,但也許我需要取消發佈所有東西,清空Data文件夾中的殘餘文件,然後重新發布 – 2013-02-13 19:20:27

+0

如果刪除數據文件夾是您的一個選項,那麼是的,去吧:) – 2013-02-13 19:24:03

+0

這是隻是我們的測試服務器...所以這是現在的選擇。我想我們需要確切地知道爲什麼會發生這種情況,並確保它不會發生在產品 – 2013-02-13 19:26:15

2

此錯誤通常是由於缺省情況下,Tridion使用上傳二進制文件的原始文件名作爲Content Delivery端的文件名。如果您未指定要部署的獨立結構組,則如果您有兩個具有相同原始上載文件名的多媒體組件,則Tridion會嘗試將它們部署到內容交付的相同位置。幸運的是,Content Delivery庫足夠智能,可以檢測到潛在的覆蓋,相反,您會收到此錯誤。

首先 - 這種情況在測試情況下更有可能。例如,您需要創建一堆測試MMC,以便複製和粘貼您已有的一些。猜猜看 - 他們的上傳文件名是一樣的。

解決方法是確保文件名在您要部署到的結構組中是唯一的。關於如何做到這一點,您有很多選擇,但常用的方法是在調用AddBinary()時將組件ID引入文件名。

+0

作者方面立即修復錯誤的方法是重命名爲新文件上傳的文件名。否則,另一種編程方法是使用文件夾路徑而不是默認的「圖像」位置來減少重複的機會。 – 2013-02-14 02:53:42

+0

...當您要求課程上傳示例圖片時,這在培訓中也很常見。 :-) – 2013-02-14 02:55:48

+1

在部署程序配置文件中至少應該有這種行爲的覆蓋設置。我會說很長一段時間,同名的二進制文件是相同的二進制文件,我認爲這很容易向用戶解釋。就我而言,我擔心的是Tridion似乎已經失去了它發佈的內容的軌道。請記住我的場景,由於從CM中刪除的二進制文件,我收到了此錯誤。 – 2013-02-14 12:25:20

0

我們幾乎每次安裝都會遇到這種故障安全問題。當然,在開發和測試環境中它更常見,故障安全也可能發生在其他情況下。事實上,如果您嘗試發佈已經存在的圖像(圖像被替換爲「破碎的圖像」圖標),它可以有效地打破整個網站。不知道這是如何工作,但它可以。

爲了確保上傳的二進制文件是唯一的,我建議編寫一個TBB來檢查所有的二進制文件,並將tcm uri添加到文件名中。在每個頁面模板上添加它以確保不會發生這種情況。越早執行此操作,發生錯誤的可能性就越小。請記住,這可能意味着上傳將始終發佈一個新的二進制文件,並且如果將tbb添加到COMPONENT模板,頁面往往會發生衝突。但是,它將爲您解釋工作流程的麻煩,讓編輯不理解(或更好地接受)故障安全。

此頁可能幫助你開始:在這種情況下 Unique Binary filenames