Change Search Index Catalog Location
Hello,
I'm trying to change the location of the search index catalog. By default it's ~\App_Data\Sitefinity\Search but I'd like to move it to a different location that's outside of the website's root directory (c:\MySitefinityIndexCatalogDirectory\). I need to do this to allow file replication across multiple servers. I'm able to change the cataloguesFolder parameter of the LuceneSearchProvider correctly, but then when I try and re-index the index, I get the message "The relative virtual path 'c:\MySitefinityIndexCatalogDirectory\general' is not allowed here. (full error text is below).
Is it possible to locate the search index catalog outside of the site and use a non-virtual path?
Thanks
----------------------------------------
Timestamp: 8/15/2014 6:26:01 PM
Message: HandlingInstanceID: e717bf26-cbf8-4627-9f15-896881858201
An exception of type 'System.ArgumentException' occurred and was caught.
------------------------------------------------------------------------
08/15/2014 14:26:01
Type : System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : The relative virtual path c:\MySitefinityIndexCatalogDirectory\general is not allowed here.
Source : Unity_ILEmit_DynamicClasses
Help link :
ParamName :
Data : System.Collections.ListDictionaryInternal
TargetSite : Void DeleteCatalogue(System.String)
HResult : -2147024809
Stack Trace : at DynamicModule.ns.Wrapped_LuceneSearchProvider_538f405482064664bf09caa09325932b.DeleteCatalogue(String catalogueName)
at Telerik.Sitefinity.Services.Search.SearchManager.DeleteCatalogue(String catalogueName)
at Telerik.Sitefinity.Services.Search.SearchService.DeleteCatalogue(String catalogueName)
at Telerik.Sitefinity.Publishing.Web.Services.PublishingAdminService.ReindexSearchContent(String providerName, String pointId)
at SyncInvokeReindexSearchContent(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
Additional Info:
MachineName :
TimeStamp : 8/15/2014 6:26:01 PM
FullName : Telerik.Sitefinity.Utilities, Version=6.3.5000.0, Culture=neutral, PublicKeyToken=b28c218413bdf563
AppDomainName : /LM/W3SVC/15/ROOT-5-130526003915737334
ThreadIdentity :
WindowsIdentity : WABUTLER\dscherpelz
Requested URL : localhost:5899/.../
Category: ErrorLog
Priority: 0
EventId: 90000
Severity: Error
Title:Enterprise Library Exception Handling
Machine:
App Domain: /LM/W3SVC/15/ROOT-5-130526003915737334
ProcessId: 19900
Process Name: C:\Program Files (x86)\IIS Express\iisexpress.exe
Thread Name:
Win32 ThreadId:119828
Extended Properties:
----------------------------------------
Hi Dave,
Is it an option for you to configure the Sitefinity's App_Data folder to be on a shared virtual directory as described in the following article. This way each server will access the App_Data folder from a single location.
Regards,
Sabrie Nedzhip
Telerik
I ended up moving the index back to the ~\App_Data folder. It worked better for us to do that so the index can be rebuilt.