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

EpiServer 7 PageTypeBuilder - Sites Crash Intermittedly

Vote:
 

We run load balanced EpiServer 7 webservers that use PageTypeBuilder.

Two weeks ago, we tried to deploy an update to our Production system. The first box we deployed to ran fine for over an hour, then crashed with the following error:

[1] ERROR EPiServer.Framework.Initialization.InitializationEngine: Initialize action failed for Initialize on class PageTypeBuilder.Initializer, PageTypeBuilder, Version=2.0.0.0, Culture=neutral, PublicKeyToken=6fb8762af0e6dbed
Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(PageTypeBuilder.Discovery.IPageTypeDefinitionLocator, PageTypeBuilder.Abstractions.IPageTypeRepository, PageTypeBuilder.Abstractions.IPageTypeValueExtractor, PageTypeBuilder.Synchronization.IPageTypeLocator)' on type 'PageTypeUpdater'. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at PageTypeBuilder.Reflection.AssemblyExtensions.b__5[T](Assembly a)
   at System.Linq.Enumerable.d__14`2.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at PageTypeBuilder.Discovery.PageTypeDefinitionLocator.GetPageTypeDefinitions()
   at PageTypeBuilder.Synchronization.PageTypeUpdater..ctor(IPageTypeDefinitionLocator pageTypeDefinitionLocator, IPageTypeRepository pageTypeRepository, IPageTypeValueExtractor pageTypeValueExtractor, IPageTypeLocator pageTypeLocator)
   --- End of inner exception stack trace ---
   at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()
   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters)
   at Autofac.Core.Resolving.InstanceLookup.Execute()
   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)
   at Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate()
   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
   at Autofac.Core.Resolving.InstanceLookup.Activate(IEnumerable`1 parameters)
   at Autofac.Core.Resolving.InstanceLookup.Execute()
   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters)
   at Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters)
   at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)
   at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
   at Autofac.ResolutionExtensions.Resolve[TService](IComponentContext context, IEnumerable`1 parameters)
   at PageTypeBuilder.Initializer.CreatePageTypeSynchronizer()
   at PageTypeBuilder.Initializer.SynchronizePageTypes()
   at PageTypeBuilder.Initializer.Initialize(InitializationEngine context)
   at EPiServer.Framework.Initialization.ModuleNode.Execute(Action a, String key)
   at EPiServer.Framework.Initialization.InitializationEngine.InitializeModules()

The other machine - the one still on the load balancer - is still functioning without issue.

Restarting it (the machine, the app pool, or any fiddling with the WebConfig) sometimes works fine for an hour or so, other times crashes hard.

Rolling back and redeploying the pre-error version did not clear the issue.

We've tried:

  • Cloning the functioning machine, and reconfiguring it. Same crash as above
  • Comparing the entire Bin directory and Config files. No notable differences
  • Replacing the entire Bin directory with copies from the functioning machine

We've been running only one Webserver for over two weeks now, but we're currently unable to deploy any new build, without risking our remaining production server. And running on one server long-term isn't an option.

We are building a new EpiServer environment in the not-distant future (licenses already aquired), but we need to be able to run our current website until that's fleshed out. To that end, we need to resolve this issue on our production website.

The environment is talking to the appropriate SQL servers, and not causing a problem.

Note - we do disable PageTypeUpdation in the AppConfig:

Has anyone else had this problem? Any idea what's happening?

#131460
Jul 27, 2015 16:38
Vote:
 

Yes I have had the same trouble and the solution in my case was that it was easier to just remove ptb then actually trying to fix that issue. Since ther is plugins for extracting the types to classes to cms 7 the job for migrating to epi went fine.

Of course rewreting some of the views is needed :)

#140397
Oct 19, 2015 11:48
* 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.