November Happy Hour will be moved to Thursday December 5th.

Search in episerver edit mode throws exception

Vote:
 

We are running in a load balanced environment with event replication.

there are 4 servers running, where 2 of them are allowed to update the index and the other 2 only has read "permissions".

Now when we try to search for e.g. pages or blocks via the search box in episerver we get the following error

The Type 'EPiServer.Shell.Search.SearchProviderSetting' needs to be remapped in the Dynamic Data Store, see the Errors collection for more information.
Remapping can be done by applying the EPiServer.Data.Dynamic.EPiServerDataStoreAttribute attribute to the type,
setting its AutomaticallyRemapStore property to true and ensuring the  autoRemapStores attribute in web.config is set to true (or is not defined).
Alternatively call the Upgrade-EPiRemapDDSTypes cmdlet from Powershell.

with this stack trace

at EPiServer.Data.Dynamic.EPiServerDynamicDataStoreFactory.GetStore(Type type)
at EPiServer.Shell.Search.SearchProvidersManager.get_Store()
at EPiServer.Shell.Search.SearchProvidersManager.GetProviderPairs()
at EPiServer.Shell.Search.SearchProvidersManager.GetEnabledProvidersByPriority(String searchArea, Boolean filterOnArea)
at EPiServer.Shell.UI.Rest.SearchProviderStore.Get(String searchArea)
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
at EPiServer.Shell.Services.Rest.RestControllerBase.ExecuteCore()
at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
at EPiServer.Shell.Services.Rest.RestHttpHandler.ProcessRequest(HttpContextBase httpContext)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

i am guessing it is the same issue as these threads

http://world.episerver.com/forum/developer-forum/-EPiServer-75-CMS/Thread-Container/2014/9/StoreInconsistencyException-EPiServerShellSearchSearchProviderSetting/

http://world.episerver.com/forum/developer-forum/EPiServer-7-CMS/Thread-Container/2013/4/Search-function-in-edit-mode-not-working/

however the solution with deleting from the database, is a solution i would very much like to avoid as this is live servers.

Does anyone have and idea, pointer or solution to this issue?

best regards

#120492
Apr 18, 2015 16:05
Vote:
 

Solution also discussed here: http://world.episerver.com/forum/developer-forum/EPiServer-CMS-6-R2/Thread-Container/2014/5/Search-in-edit-mode-not-functional/

The alternative to deleting from database would be deploying custom code that calls an API that remaps the type, both require a restart of the site and both require proper backups. I think testing the solution with deleting from db in a staging or test and then deploying to prod is preferable over deploying custom code that does this one time.

#120580
Apr 21, 2015 9:07
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.