2

Umbraco V6.1.1 サイトを V6.1.3 にアップグレードしました。私のワークステーションではすべてうまくいきました。そこにあったファイルをすべて削除した後、ファイルをWebサーバーにコピーし、データベースでも同じことを行いました。すべてのディレクトリのアクセス許可を設定し、サイトを実行しました。サイト(MVC)は実行されますが、私には理解できない2つの問題があり、助けていただければ幸いです。

Read Past EOF エラーを伴う 1 ページ エラー。これは実行しようとしているビューです。エラーは太字のリンクにあります。

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage

@{
    Layout = "BasePage.cshtml";
}
          <div class="row-fluid">
              <div class="span12">
                  <h1>@Umbraco.Field("pageName")</h1>
                  @Umbraco.Field("pageText")
              </div>
            </div>
          <div class="row-fluid">
              <div class="span12">
                @foreach (var page in Model.Content.Children) {
                    <section class="well">
                    <h3>@page.Name</h3>
                    @if(page.Children.Count() > 0) {
                        <ul>
                        **@foreach (var pub in page.Children) {**
                           <li><a href="@Umbraco.Media(pub.GetPropertyValue("publication")).Url" title="@pub.Name" target="_blank">@pub.Name</a></li>
                        }
                        </ul>
                    }
                    </section>
                }
                  </div>
          </div>

スタックトレースは

[IOException: read past EOF]
   Lucene.Net.Index.FindSegmentsFile.Run(IndexCommit commit) +2040
   Lucene.Net.Index.DirectoryReader.Open(Directory directory, IndexDeletionPolicy deletionPolicy, IndexCommit commit, Boolean readOnly, Int32 termInfosIndexDivisor) +57
   Lucene.Net.Search.IndexSearcher..ctor(Directory path, Boolean readOnly) +29
   Examine.LuceneEngine.Providers.LuceneSearcher.ValidateSearcher(Boolean forceReopen) +136

もう1つ(関連する問題だと思います)はCMSにあります。開発者セクションを開くと、Luceneに関連する巨大なエラーメッセージを含むjavascriptアラートが表示されます

error: {"Message":"An error has occurred.","ExceptionMessage":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.","ExceptionType":"System.InvalidOperationException","StackTrace":null,"InnerException":{"Message":"An error has occurred.","ExceptionMessage":"Could not create an index searcher with the supplied lucene directory","ExceptionType":"System.ApplicationException","StackTrace":"   at Examine.LuceneEngine.Providers.LuceneSearcher.ValidateSearcher(Boolean forceReopen)\r\n   at Examine.LuceneEngine.Providers.LuceneSearcher.GetSearcher()\r\n   at Umbraco.Web.Search.ExamineExtensions.GetIndexReaderForSearcher(BaseLuceneSearcher searcher)\r\n   at Umbraco.Web.Search.ExamineExtensions.GetIndexDocumentCount(LuceneIndexer indexer)\r\n   at Umbraco.Web.WebServices.ExamineManagementApiController.CreateModel(BaseIndexProvider indexer)\r\n   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()\r\n   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)\r\n   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)\r\n   at Newtonsoft.Json.Serialization.JsonArrayContract.CreateWrapper(Object list)\r\n   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)\r\n   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value)\r\n   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value)\r\n   at System.Net.Http.Formatting.JsonMediaTypeFormatter.<>c__DisplayClassd.<WriteToStreamAsync>b__c()\r\n   at System.Threading.Tasks.TaskHelpers.RunSynchronously(Action action, CancellationToken token)","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"read past EOF","ExceptionType":"System.IO.IOException","StackTrace":"   at Lucene.Net.Index.SegmentInfos.FindSegmentsFile.Run(IndexCommit commit)\r\n   at Lucene.Net.Index.DirectoryReader.Open(Directory directory, IndexDeletionPolicy deletionPolicy, IndexCommit commit, Boolean readOnly, Int32 termInfosIndexDivisor)\r\n   at Lucene.Net.Search.IndexSearcher..ctor(Directory path, Boolean readOnly)\r\n   at Examine.LuceneEngine.Providers.LuceneSearcher.ValidateSearcher(Boolean forceReopen)"}}}

Umbraco フォーラムを試しましたが、返信がありません。それが簡単な場合でも、もちろん知っておく必要があります。

アドバイスをいただければ幸いです。

4

1 に答える 1

23

インデックスをバックアップし (app_data\temp\.... にあります)、それらを削除してアプリ プールを再起動します。

Umbraco は、次回の起動時にそれらを再構築します (15 万ノードの巨大なデータベースの場合、5 ~ 10 分かかる場合があります)。

インデックスが破損している可能性があります (その場合は、バックアップを取得して Luke を使用し、破損しているかどうかを確認してください)、またはインデックスのバージョンが変更された可能性があります。これは同じ結果です。

https://code.google.com/p/luke/

于 2013-08-08T15:58:42.193 に答える