инициализатор типа для 'Examine.ExamineManager' выдал исключение Umbraco - PullRequest
5 голосов
/ 31 января 2012

У меня приложение, построенное с использованием Umbraco, работало уже около месяца без проблем, но сегодня большинство моих макросов Razor Script генерирует загадочную ошибку исключения. Ошибка:

Error loading Razor Script AnnouncementSummary.cshtml
The type initializer for 'Examine.ExamineManager' threw an exception.

И детали ошибки исключения:

Исключение

System.TypeInitializationException: The type initializer for 'Examine.ExamineManager' threw an exception. ---> System.Configuration.ConfigurationErrorsException: Method not found: 'Void Examine.Providers.BaseIndexProvider.set_SupportUnpublishedContent(Boolean)'. (C:\inetpub\wwwroot\DCASConnect\DCASConnect\config\ExamineSettings.config line 12) ---> System.MissingMethodException: Method not found: 'Void Examine.Providers.BaseIndexProvider.set_SupportUnpublishedContent(Boolean)'. at UmbracoExamine.UmbracoContentIndexer.Initialize(String name, NameValueCollection config) at System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType) --- End of inner exception stack trace --- at System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType) at System.Web.Configuration.ProvidersHelper.InstantiateProviders(ProviderSettingsCollection configProviders, ProviderCollection providers, Type providerType) at Examine.ExamineManager.LoadProviders() at Examine.ExamineManager..cctor() --- End of inner exception stack trace --- at umbraco.MacroEngines.ExamineBackedMedia.GetUmbracoMedia(Int32 id) at umbraco.MacroEngines.DynamicNode.Media(String propertyAlias) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1) at ASP._Page_macroScripts_AnnouncementSummary_cshtml.Execute() in c:\inetpub\wwwroot\DCASConnect\DCASConnect\macroScripts\AnnouncementSummary.cshtml:line 13

Внутреннее исключение

Method not found: 'Void Examine.Providers.BaseIndexProvider.set_SupportUnpublishedContent(Boolean)'. (C:\inetpub\wwwroot\DCASConnect\DCASConnect\config\ExamineSettings.config line 12)

Эта ошибка возникает только в производственной среде, и я много копался в сети без каких-либо решений, которые работают.Я попытался получить последнюю версию Examine, а также попытался изменить учетные данные пула приложений на Network Service и предоставить ему полный доступ к c: \ Windows \ Temp.Оба предложения не сработали. Вот один из моих сценариев Razor, который генерирует ошибку:

@{ var numberOfItems = 10; }
@foreach (var item in @Model.Descendants("umbAnnouncementPage").Where("Visible").OrderBy("CreateDate desc").Take(numberOfItems))
{  
  var imageUrl = "";
  var link = @item.Url;
  string text = @item.shortDescription;
  if (@item.HasValue("articleImage"))
  {  
    item.Media("articleImage"); @*** This is where it fails ***@
            imageUrl = "/usercontrols/ImageGen.ashx?image=" + @item.Media("articleImage").UmbracoFile + "&width=120&crop=resize&pad=false&bgcolor=f2f2f2";
  }
  else
  {
    imageUrl = "/usercontrols/ImageGen.ashx?image=/media/3115/defaultannouncement.jpg&&width=120&&height=80&&constrain=true&&crop=resize";
  }
  if (@item.HasValue("url"))
  {
    link = @item.url;
  }
  var lineOfService = "";
  foreach (var line in @item.Ancestors("umbLineOfService")) {  lineOfService = line.lineOfServiceName; }
    <div class="clearboth">
      <h4 class="announcement underline-dotted"><a href="@link">@item.Title</a></h4>          
      <a class="summaryImageLeft announcementThumbnail" href="@link"><img alt="" src="@imageUrl" alt="@item.Title"/></a>
                <div class="smaller-text summaryText">
            @Library.Truncate(@text, 200)
      </div>
                <div class="clearboth overline-dotted">
                    <a class="small-text floatright" href="@link">Read more...</a>
                    <span class="small-text">@lineOfService</span></div>
    </div>
    <br />   }

@ item.Media ("articleImage") генерирует исключение при вызове.

На меня оказывается большое давление, чтобы исправить эту ошибку, поэтому любая помощь будет принята с благодарностью.Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 13 марта 2012

У меня была эта ошибка, когда я обновил некоторые из библиотек Examine в Umbraco, но не все из них.Я решил это следующим образом:

Загрузив последнюю версию Examine из http://examine.codeplex.com/

  • Скопируйте Examine.dll, Lucene.Net.dll и UmbracoExamine.dll в каталог / bin
  • Удалить ВСЕ существующие индексы в каталоге App_Data\TEMP\ExamineIndexes.Они будут воссозданы.
  • Вам может потребоваться перезапустить сайт и опубликовать (любую) страницу, чтобы возобновить процесс индексации

Не могу сказать, что это будет работать для вас,но стоит попробовать для любого с подобной ошибкой.

Если вы все еще получаете какие-либо ошибки, проверьте таблицу umbracoLog, чтобы определить, какие они есть.

3 голосов
/ 01 февраля 2012

Это именно то, что происходит, когда неправильно установлены разрешения для временной папки.

Вы уверены, что используете правильный пул приложений?

Это должно быть: Имя: ASPУдостоверение .NET v 4.0: NetworkService

Убедитесь, что сетевая служба получила разрешения на запись во временную папку.

...