問題:當項目從一個桶文件夾移動到另一個CM服務器上,他們從第二CM服務器問題與Sitecore的多服務器CM環境bucketable項目的知名度
簡要消失簡介:
我們爲我們的網站CM1和CM2設置了兩臺CM服務器。我們有一個項目存儲桶,存儲具有三個嵌套文件夾的項目:年,月,日。 該項目最初是使用創建日期創建的,我們有一個自定義路徑解析器,根據字段「到期日期」更新項目的路徑,然後每當「截止日期」字段被修改時將項目移動到新的存儲桶中並保存該項目。
下面的代碼是在項目上運行保存:
/*move the saved item according to release/due date*/
BucketManager.MoveItemIntoBucket(savedItem, bucketItem);
/*delete previous parent if it has no child (delete empty buckets)*/
if (BucketManager.IsItemContainedWithinBucket(removeItem))
{
if (!removeItem.HasChildren)
{
removeItem.Delete();
}
}
以下設置是爲了實現根據「到期日」的接口IDynamicBucketFolderPath的GetFolderPath方法(Sitecore.Buckets.dll):
<setting name="BucketConfiguration.DynamicBucketFolderPath">
<patch:attribute name="value"> FullyQualifiedPathOfTheClassWithGetFolderPathMethod, AssemblyName </patch:attribute>
</setting>
問題描述:
當我們在CM1服務器上的項目桶中創建項目時,該項目會在使用當前日期創建的年,月,日文件夾中創建。 如果在CM2服務器上選中了相同的項目,則在此處可見。 最初'到期日'字段爲空。
當'到期日'字段在CM1服務器上用新日期修改並且該項目被保存時,該項目將移動到截止日期爲'截止日期'的新創建的存儲桶文件夾中。 如果在CM2服務器上選中了相同的項目,那麼它現在不存在。
看來這個項目沒有得到與目前在Sitecore.Buckets.dll BucketManager類的MoveItemIntoBucket方法在兩臺服務器上同步。
如果我們現在從CM1的內容編輯器中的開發人員功能區爲同一項目執行「更新項目」,則同樣開始出現在CM2服務器上,但我們不希望每當有新項目時手動執行「更新項目」 bucketable項目被創建。
什麼可能導致此行爲?我怎樣才能解決這個問題?
您是否爲兩個CM服務器啓用了擴展配置? –
即使在第二臺服務器的內容編輯器中,我也無法看到該項目。當該項目最初在一個CM服務器上創建時,它在第二個CM服務器的內容編輯器中的相同路徑上也可用,但是一旦我更新「發佈日期」字段,然後項目移動到具有新日期的另一個存儲桶中,從第二個CM服務器的內容編輯器中消失(雖然它在第一個CM服務器的內容編輯器中在新創建的路徑中可用)在這裏縮放配置幫助嗎?我們曾嘗試在另一臺服務器上手動重建索引,但它不起作用。 – Renuka
要添加到此項中,只要項目移動到現有文件夾結構中,它就會在兩臺服務器的內容編輯器中可見,只有在更改時創建'發佈日期'中具有年份,月份的新存儲桶文件夾時纔會出現問題發佈日期。所以,問題在於沒有在其他服務器上更新文件夾,因爲該項目不可見。 – Renuka