';的类型初始值设定项;Examine.Manager';引发了一个异常Umbraco

本文关键字:Umbraco 异常 一个 Examine 类型 Manager | 更新日期: 2023-09-27 18:21:58

我已经在生产中使用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,还尝试将应用程序池凭据更改为网络服务,并授予其对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")在调用时抛出异常。

我有很大的压力来纠正这个错误,所以任何帮助都将不胜感激。提前谢谢。

';的类型初始值设定项;Examine.Manager';引发了一个异常Umbraco

我在更新Umbraco中的一些Examine DLL时遇到了这个错误,但不是全部。我通过解决了这个问题

从下载最新版本的Examinehttp://examine.codeplex.com/

  • Examine.dllLucene.Net.dllUmbracoExamine.dll复制到您的/bin目录
  • 删除App_Data'TEMP'ExamineIndexes中的所有现有索引目录这些将被重新创建
  • 您可能需要重新启动网站并发布(任何)页面才能重新启动索引过程

不能说它对你有用,但值得任何有类似错误的人尝试一下。

如果仍然有任何错误,请检查umbracoLog表以确定它们是什么。

当临时文件夹的权限设置不正确时,就会发生这种情况。

你确定你正在使用正确的应用程序池吗?

它应该是:名称:ASP.NET 4.0版本标识:NetworkService

请确保网络服务具有对临时文件夹的写入权限。