突然间,我的Sitecore网站上的Lucene索引被破坏了,经过一些调查后,我注意到Sitecore包含的文件是以非字母顺序“修补”web.config。
John West在一篇博客文章中提到:
Sitecore进程Web.config按字母顺序包含文件(从技术上讲,这是Directory.GetFiles()方法返回的顺序)。
然而,MSDN说:
无法保证返回的文件名(来自GetFiles())的顺序;如果需要特定的排序顺序,请使用Sort()方法。
什么可能导致这类问题?它与服务器配置有关吗?
答案 0 :(得分:6)
如果您需要确保在所有其他包含文件之后始终包含您自己的配置包含,我可以使用一个技巧。
确保所有默认和供应商.config
文件都直接位于/App_Config/Include
文件夹中,然后创建一个子文件夹,您可以在其中放置自己的包含文件,例如/App_Config/Include/Custom/MyConfig.config
。
这样,您的配置包括始终最后加载,因为顶级文件夹中的文件总是先由Directory.GetFiles()
方法返回。
答案 1 :(得分:0)
请检查此link。返回的文件名顺序无法保证;如果需要特定的排序顺序,请使用Sort()方法。它在MSDN上说。
但是我知道当你想修补补丁时,文件的命名很重要。
示例:您可以修补Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config
创建一个名为Sitecore.ContentSearch.Lucene.DefaultIndexConfigurationPatch.config
的新配置文件,然后将其包含在原始Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config.
您可以使用以下命令检查配置文件的修改:
hostname/sitecore/admin/showconfig.aspx