7

TDSを使用して展開しようとしたときに、次のエラーが発生しました。カスタムインデックスはないと思います。次のリンクを見て、\ Data\Indexesフォルダーをクリアしました。

Sitecoreインデックスエラー-ルートアイテムが定義されていません

このエラーの原因は何ですか?

また、これは私がエラーを受け取っているURLです:http://<hostname>/sitecore

フルスタックトレース:

[InvalidOperationException: Root item is not defined]
   Sitecore.Diagnostics.Assert.IsNotNull(Object value, String message) +59
   Sitecore.Search.Crawlers.DatabaseCrawler.Initialize(Index index) +106
   Sitecore.Search.Index.AddCrawler(ICrawler crawler) +36

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +1255
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +38
   Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +91
   Sitecore.Configuration.Factory.AssignProperties(Object obj, Object[] properties) +760
   Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +943
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +305
   Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +858
   Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +795
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +305
   Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +395
   Sitecore.Search.SearchManager.get_SearchConfig() +71
   Sitecore.Search.SearchManager.GetIndex(String id) +43
   Sitecore.Shell.Applications.ShellForm.OnLoad(EventArgs e) +1331

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +1255
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +38
   Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +91
   Sitecore.Web.UI.Sheer.ClientPage.OnLoad(EventArgs e) +332
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
4

2 に答える 2

12

このページを閲覧すると http://[yourhostname]/sitecore/admin/showconfig.aspx

index要素のインスタンスを検索し、<Root>path here</Root>ノード パスがコンテンツ ツリーに実際に存在することを確認します。

例については、デフォルトのインデックスを参照してください

<index id="system" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">__system</param>
<Analyzer ref="search/analyzer"/>
<locations hint="list:AddCrawler">
<core type="Sitecore.Search.Crawlers.DatabaseCrawler,Sitecore.Kernel">
<Database>core</Database>
<Root>/sitecore/content</Root>
<include hint="list:IncludeTemplate">
<application>{EB06CEC0-5E2D-4DC4-875B-01ADCC577D13}</application>
</include>
<Tags>application</Tags>
<Boost>2.0</Boost>
</core>
<core-controlpanel type="Sitecore.Search.Crawlers.DatabaseCrawler,Sitecore.Kernel">
<Database>core</Database>
<Root>/sitecore/content/applications/control panel</Root>
<include hint="list:IncludeTemplate">
<taskoption>{BDB6FA46-2F76-4BDE-8138-52B56C2FC47E}</taskoption>
</include>
<Tags>taskoption</Tags>
<Boost>1.9</Boost>
</core-controlpanel>
<master type="Sitecore.Search.Crawlers.DatabaseCrawler,Sitecore.Kernel">
<Database>master</Database>
<Tags>master content</Tags>
</master>
</locations>
</index>

無効なルート値を修正すると、サイトは再び機能するはずです。

于 2013-03-12T09:50:48.110 に答える
5

問題の原因

この問題は通常、Sitecore lucene インデックス宣言されているが、<Root>参照先がデータベースにない場合に発生します。

注: インデックスの対象となるデータベースが Web の場合、アイテムがないことが原因である可能性がありますpublished

問題の修正

Sitecore デスクトップにアクセスできないため、問題の原因となっているインデックスをコメント アウトする必要があります。どれか分からない場合は、昔ながらの試行錯誤を繰り返す必要があります。

システムで宣言したすべてのインデックスを表示するには、 に移動してhttp://[yourhostname]/sitecore/admin/showconfig.aspxを検索し<indexます。これは、App_Config で宣言されたすべての構成の組み合わせです。

インデックスは次のようになります。

<index id="MyIndexId" type="Sitecore.Search.Index, Sitecore.Kernel">

犯人を見つけたら、それをコメントアウトしてから、欠落しているルート アイテムを Sitecore で作成または展開します。それが完了したら、インデックスを元に戻します。

于 2014-02-18T01:43:55.830 に答える