【问题标题】:Sitecore 8.2 update 5 Ninject Solr support package issueSitecore 8.2 更新 5 Ninject Solr 支持包问题
【发布时间】:2020-01-30 12:28:49
【问题描述】:

我遇到了 Ninject IOC 容器的问题。

我正在使用 Sitecore 8.2 update 5 并使用https://sitecorerockz.wordpress.com/2018/08/01/lucene-to-solr/ 中提到的步骤从 Lucene 切换到 Solr 搜索引擎

我正在使用 Solr 6.6.3。早期这个项目是在 Sitecore 6.X 版本上,不时发生一些升级,现在它是在 Sitecore 8.2 更新 5 中。 相同的 Solr 设置适用于全新的 Sitecore 8.2 update 5 设置。

我创建了 Solr 诊断页面并将其保存在 /Sitecore/admin 文件夹中以检查错误详细信息,我收到所有索引的以下错误:

Solr Indexes Microsoft.Practices.ServiceLocation.ActivationException:尝试获取 IsolrOperations`1 类型的实例时发生激活错误,键“sitecore_analytics_index”---> Ninject.ActivationException:激活 IsolrOperations{Dictionary{string, Object}} 时出错没有匹配的绑定可用,并且该类型不可自绑定。激活路径:1) 请求 IsolrOperations{Dictionary{string, Object}} 建议:1) 确保您已定义 IsolrOperations{Dictionary{string, Object}} 的绑定。 2) 如果绑定是在模块中定义的,请确保该模块已加载到内核中。 3) 确保您没有意外创建多个内核。 4) 如果您使用构造函数参数,请确保参数名称与构造函数参数名称匹配。 5) 如果您使用自动模块加载,请确保搜索路径和过滤器正确。在 C:\Projects\Ninject\ninject\src\Ninject\KernelBase.cs 中的 Ninject.KernelBase.Resolve(IRequest 请求):Ninject.ResolutionExtensions.Get(IResolutionRoot 根,类型服务,字符串名称,IParameter[] 参数的第 376 行) 在 c:\Projects\Ninject\ninject\src\Ninject\Syntax\ResolutionExtensions.cs:C:\test_Git\Sitecore\src\ 中 MyLibrary.test.Infrastructure.NinjectServiceLocator.DoGetInstance(Type serviceType, String key) 的第 164 行test\Infrastructure\NinjectServiceLocator.cs: 第 15 行 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs :line 49 --- 内部异常堆栈跟踪结束 --- 在 c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices 中的 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)。 ServiceLocation\ServiceLocatorImplBase.cs:Microsoft.Pract 的第 53 行ices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService](String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:Sitecore.ContentSearch.SolrProvider.SolrSearchIndex.Initialize 的第 103 行() 在 ASP._Page_sitecore_admin_solr_diagnostic_cshtml.Execute() 在 c:\test_Git\Sitecore\build\25Sep2019\Website\sitecore\admin\solr-diagnostic.cshtml:line 29

我错过了什么,你能告诉我吗?

【问题讨论】:

    标签: solr lucene sitecore ninject


    【解决方案1】:

    SetLocatorProvider 被初始化了两次

    • 修改了Ninject IOC相关的自定义代码
    • 我们当前的解决方案是使用 Ninject.dll 3.0.0.0 现在我使用新版本的 Ninject.dll,它是文件夹 bin>>Social 下的 3.2.2.0
    • 从新的 Sitecore 8.2 更新 5 文件中替换了所有 Solr dll 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多