I am still figuring it out. I have put a epi Find log files, which gives me the following detailed error? Any ideas?
2014-07-28 11:56:57,127 ERROR [72] EPiServer.Find.Cms.PageIndexer.ReIndex - An exception occured while fetching pages. Object reference not set to an instance of an object.. If you are using PageTypeBuilder please make sure that you are using >= 1.3.1.
System.NullReferenceException: Object reference not set to an instance of an object.
at CCLClean.PageProviders.Base.ProviderBase.GetPrototype(String pageTypeName) in d:\DevRoot\CIMA\cimaglobal.com\Search\Src\CCLClean.PageProviders.Base\ProviderBase.cs:line 1034
at CCLClean.PageProviders.Base.ProviderBase.InitialisePageData_UsePrototype(ProviderData thisPageData, PageReference pageLink, List`1 pageLanguages) in d:\DevRoot\CIMA\cimaglobal.com\Search\Src\CCLClean.PageProviders.Base\ProviderBase.cs:line 212
at CIMA.PageProviders.Base.ProviderBase.GetLocalPage(PageReference pageLink, ILanguageSelector languageSelector) in d:\DevRoot\CCLClean\CCLCleanglobal.com\Search\Src\CCLClean.PageProviders.Base\ProviderBase.cs:line 166
at EPiServer.Core.PageProviderBase.<>c__DisplayClass4.
at EPiServer.Core.OptimisticCache`1.Read(String cacheKey, ReadAndCacheObject`1 readAndCacheObject)
at EPiServer.Core.PageProviderBase.GetPageInternal(PageReference pageLink, ILanguageSelector selector)
at EPiServer.Core.PageProviderBase.GetPage(PageReference pageLink, ILanguageSelector selector)
at EPiServer.Core.PageProviderBase.GetPages(PageReferenceCollection pageReferences, ILanguageSelector selector)
at EPiServer.Core.PageProviderBase.GetScatteredPages(IList`1 pageRefs, ILanguageSelector selector)
at EPiServer.Core.PageProviderBase.GetPagesBatched(IList`1 pageLinks, ILanguageSelector selector)
at EPiServer.DataFactory.GetPages(IList`1 pageLinks, ILanguageSelector selector)
at EPiServer.Find.Cms.PageIndexer.ReIndex(Action`1 statusAction, Func`1 isStopped)
Thanks very much for your reply.
I have managed to figure out that error, and now facing this error only.
An exception occured while indexing (Batch): Error getting value from 'Qualifications' on 'Castle.Proxies.ExemptionPageTypeProxy'..
ClClean.PageProviders.Data.ExceptionsQualificationsList' is a custom type defined which is a complex type
which is as follows
[Serializable]
[PageDefinitionTypePlugIn(DisplayName = "Exemptions Qualifications")]
public class ExemptionsQualificationsProperty : GenericPropertyData
{
public override IPropertyControl CreatePropertyControl()
{
// We do not need to provide an interface for this
return new GenericPropertyControl();
}
}
[Serializable]
public class ExceptionsQualification
{
public ExceptionsQualification()
{
Papers = new List
}
public string Id
{ get; set; }
public string Name
{ get; set; }
public string Description
{ get; set; }
public List
{ get; set; }
}
public class ExceptionsPaper
{
public ExceptionsPaper()
{
}
public string Name
{ get; set; }
public string Syllabus
{ get; set; }
public string CourseLevel
{ get; set; }
public List
{ get; set; }
}
This is the full error log
2014-07-28 15:19:57,303 ERROR [40] EPiServer.Find.Cms.PageIndexer.ReIndex - An exception occured while indexing (Batch): Error getting value from 'Qualifications' on 'Castle.Proxies.ExemptionPageTypeProxy'..
Newtonsoft.Json.JsonSerializationException: Error getting value from 'Qualifications' on 'Castle.Proxies.ExemptionPageTypeProxy'. ---> System.InvalidCastException: Unable to cast object of type 'CIMA.PageProviders.Data.ExceptionsQualificationsList' to type 'System.String'.
at Castle.Proxies.ExemptionPageTypeProxy.get_Qualifications()
at GetQualifications(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
at EPiServer.Find.ClientConventions.FieldConventionBuilder`1.<>c__DisplayClass2.<>c__DisplayClass4.
at EPiServer.Find.DelegateValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at EPiServer.Find.Api.BulkActionConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at EPiServer.Find.Json.Serializer.SerializeToStringBuilder(JsonSerializer serializer, Object value, StringBuilder buffer)
at EPiServer.Find.Api.BulkCommand.Execute()
at EPiServer.Find.Client.Index(IEnumerable objectsToIndex)
at EPiServer.Find.Cms.PageIndexer.Index(IEnumerable`1 pages, IndexOptions options)
at EPiServer.Find.Cms.PageIndexer.ReIndex(Action`1 statusAction, Func`1 isStopped)
2014-07-28 15:19:57,303 ERROR [40] EPiServer.Find.Cms.PageIndexer.ReIndex - An exception occured while indexing (Batch): Error getting value from 'Qualifications' on 'Castle.Proxies.ExemptionPageTypeProxy'..
Newtonsoft.Json.JsonSerializationException: Error getting value from 'Qualifications' on 'Castle.Proxies.ExemptionPageTypeProxy'. ---> System.InvalidCastException: Unable to cast object of type 'CIMA.PageProviders.Data.ExceptionsQualificationsList' to type 'System.String'.
at Castle.Proxies.ExemptionPageTypeProxy.get_Qualifications()
at GetQualifications(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
at EPiServer.Find.ClientConventions.FieldConventionBuilder`1.<>c__DisplayClass2.<>c__DisplayClass4.
at EPiServer.Find.DelegateValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at EPiServer.Find.Api.BulkActionConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
at EPiServer.Find.Json.Serializer.SerializeToStringBuilder(JsonSerializer serializer, Object value, StringBuilder buffer)
at EPiServer.Find.Api.BulkCommand.Execute()
at EPiServer.Find.Client.Index(IEnumerable objectsToIndex)
at EPiServer.Find.Cms.PageIndexer.Index(IEnumerable`1 pages, IndexOptions options)
at EPiServer.Find.Cms.PageIndexer.ReIndex(Action`1 statusAction, Func`1 isStopped)
Any help will be greatly appreciated.
Thanks,
Naz
Seems like Find is trying to cast your custom property to a string. Can you try adding the Serializable attribute to the ExceptionsPaper class?
What version of CMS is this related to?
I have added the Serializable clause to that class too yesterday, But it was not working after that. Yes, it is right it is casting them into string.
Seems like the serialisation of the complex types are difficult to be serialised. Is there any way I can ahieve that? I am using version CMS 6 R2.
I am using CMS6 R2 version.
I would like to know if I can index custom page providers data using Episerver Find?
At the moment, I have everything set up and episerver Find is working fine on other pages/types.
As soon as I filled the page with custom search providers, and assign their strongly type to index.
The service does not seem to do anything, just long wait and at the end the following error appears.
Indexing job [CIMAGlobal] [Page]: Reindexing completed.
ExecutionTime: 11minutes 19seconds
Number of pages indexed: 0
Number of page errors: 0
Number of batch errors: 110
An exception occured while fetching pages. The given key was not present in the dictionary.. If you are using PageTypeBuilder please make sure that you are using >= 1.3.1. (see log for more information) "The job is running." just this message, which I found it is not indexing any of the custom page provider pages.
I am able to index all other pages except these.
Is there a way to index custom page provider pages? Can anyone guide me to correct direction?
Thanks in advance.
Nazim