5

I am attempting to switch an instance of Sitecore 7.2 from Lucene to Solr on my local machine. I followed a well written guide detailing the steps, but I can't make it work.

My environment:

  • Sitecore 7.2
  • Solr 4.1
  • Solr running on localhost:8983/solr/
  • Selected castle windsor for the IOC

Unfortunately our site uses a bit of custom code, (as shown below in the global.asax file) and I'm hoping that's not what's tripping me up in making this work.

Global.asax

<%@Application Language='C#' Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication" %>
<%@ Import Namespace="Sitecore" %>
<%@ Import Namespace="Sitecore.Diagnostics" %>
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="Glass.Sitecore.Mapper" %>
<%@ Import Namespace="Glass.Sitecore.Mapper.Configuration.Attributes" %>

<script runat="server">
public void Application_Start()
{
            AttributeConfigurationLoader loader = new AttributeConfigurationLoader
            (
                new string[] 
                { 
                    "MedTouch.Base.BLL"
                }
            );

            Glass.Sitecore.Mapper.Context context = new Glass.Sitecore.Mapper.Context(loader);
  }

</script>

And here are the steps I've performed in attempting to make the switch.

1) Setup 7.2 instance locally and tested for functionality.

2) Installed Solr 4.1 & renamed default collection1 core to itembuckets for testing purposes.

3) Updated solr.xml file to reflect new core name (change collection1 to itembuckets)

4) Renamed schema.xml file to schema-orig.xml file in itembuckets/conf/ folder

5) Generated new schema file from control panel in 7.2

6) Reloaded core with new schema from Solr admin panel

7) Renamed Lucene config files in app_config/include to include .example to disable (7 files total)

8) Copied solr.config file from support package to app_config/include folder

9) Copied solr support dll's for castle windsor to bin folder

10) Copied castle window / core dll's from solr support 7.2 dir/net40-client folder to bin directory

11) Modifed global.asax file to include castle windsor IOC

12) Created core, master and web cores in Solr & added to solrconfig.xml

13) Updated sitecore.contentSearch.Solr.Indexes.config to point to correct core names

14) Removed all lucene dll's from bin folder

15) Updated medtouch.contentSearch & siteSearch.config files to replace lucene with solr

Finally, here's the error I'm receiving when I attempt to load the site.

Server Error in '/' Application. Method not found: 'Sitecore.ContentSearch.ProviderIndexSearchConfiguration Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration()'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.MissingMethodException: Method not found: 'Sitecore.ContentSearch.ProviderIndexSearchConfiguration Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration()'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[MissingMethodException: Method not found: 'Sitecore.ContentSearch.ProviderIndexSearchConfiguration Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration()'.]

Sitecore.ContentSearch.SolrProvider.SolrContentSearchManager.get_SearchConfiguration() +0

Sitecore.ContentSearch.SolrProvider.SolrContentSearchManager.get_Cores() +22

Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorSolrStartUp.Initialize() +66

[HttpException (0x80004005): Method not found: 'Sitecore.ContentSearch.ProviderIndexSearchConfiguration Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration()'.]

System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +540

System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +186

System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172

System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +402

System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +343

[HttpException (0x80004005): Method not found: 'Sitecore.ContentSearch.ProviderIndexSearchConfiguration Sitecore.ContentSearch.ContentSearchManager.get_SearchConfiguration()'.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +539 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +125 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +731

The only partials solutions I've seen are to check my config file(s) and make sure they're pointing to the correct core names in solr (which they are) and that my solr host url is correct (and it is).

So I'm at a loss as to what to look at next.

Thanks everyone!

4

From what I remember, ProviderIndexSearchConfiguration class (the return type of missing method) is a really old one. It was replaced with ContentSearchConfiguration.

I just checked Sitecore.Solr.Support 1.0.0 rev. 151020 which is for Sitecore 7.2 rev. 151021 and it only has private static ContentSearchConfiguration SearchConfiguration property.

From what I can tell, most probably the Sitecore.Solr.Support dll version doesn't match your Sitecore version. Try downloading appropriate Sitecore.Solr.Support package from http://sdn.sitecore.net and replace your dlls with those from the package.

  • Hi Marek, interesting.. I was wondering if it was still perhaps a dll issue. One thing I did notice is that the setup for solr 4.1 only includes 1 config file whereas a later version of solr includes many more (in another test environment I have setup) so I was wondering if I might be missing config files or something. – Nick Feb 9 '18 at 21:23
  • I think I downloaded the right support package, I will double check. The package I've downloaded is Sitecore.Solr.Support 1.0.0 rev. 130424, which is on the 7.2 page in the sitecore dev site, and I am using those dll's from that package.. but if that's not correct, then I'll try some other sitecore.solr.support dll's if I can locate them. – Nick Feb 9 '18 at 21:26
  • Well, you were correct, I had downloaded the wrong version of the solr support files. It's still not working but at least now I should be using the correct files. Now I'm getting a Could not create instance of type: MedTouch.ContentSearch.Spatial.SpatialLuceneIndex. No matching constructor was found error. I'm guessing this is due to our medtouch dll using lucene and not solr. Going to try to adjust it's config file and pray. ha ha. – Nick Feb 9 '18 at 22:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.