2014-01-11 66 views
1

突然,我的Sitecore網站上的Lucene索引被破壞,經過一番調查,我注意到Sitecore包含文件是以非字母順序「修補」web.config。Sitecore包含文件排序順序破壞

約翰·韋斯特HIST博客文章中提及了:

Sitecore的處理Web.config文件包括按字母順序(從技術上說,由Directory.GetFiles返回的順序()方法)的文件。

然而,MSDN說:

返回的文件名的順序(從的GetFiles())不能保證;如果需要特定的排序順序,請使用Sort()方法。

什麼會導致這種問題?它與服務器配置有關嗎?

+0

據我所知,包含文件應按字母順序打補丁(除非在補丁屬性中指定)。您應該聯繫sitecore支持以查看這是否是一個錯誤 –

+0

您如何通過查看showconfig.aspx頁面知道補丁包含的順序不正確?你最近升級到了SC7嗎?無論哪種方式,艾哈邁德說,聯繫SC支持 – jammykam

回答

6

我有一個技巧,你可以使用,如果你需要確保你自己的配置包含總是包含在所有其他包含文件之後。
確保所有默認和供應商.config文件都直接位於/App_Config/Include文件夾中,然後創建一個子文件夾,您可以在其中放置自己的包含文件,例如/App_Config/Include/Custom/MyConfig.config

這樣,您的配置包含總是最後加載,因爲頂級文件夾中的文件總是首先由Directory.GetFiles()方法返回。

+1

這是一個偉大的提示,使生活更簡單,更明顯什麼是自定義vs標準 – jammykam

+0

謝謝,似乎解決了這個問題! –

0

請檢查這個link。不保證返回的文件名的順序;如果需要特定的排序順序,請使用Sort()方法。它在MSDN上說。

但是我知道當你想修補一個補丁時,文件的命名很重要。 例如:您可以通過創建名爲Sitecore.ContentSearch.Lucene.DefaultIndexConfigurationPatch.config一個新的配置文件將隨後之後被包含在最終的web.config部分,修補Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config

Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config.

您可以檢查您修改的配置文件有:

hostname/sitecore/admin/showconfig.aspx