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

Issue with Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule not implementing an interface

Vote:
 

Greetings!

This regards the latest EPiServer CMS and Commerce packages as of 2016.11.14.
In other words, I'm using the latest EPiServer versions, i.e. version 10.0.1.

After updating the CMS and CommerceManager parts of a site I'm working on, I'm getting this error after logging into the commerce shell
Exception Details: System.ArgumentException: Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule must be a valid class implenting Mediachase.BusinessFoundation.Data.Business.IPlugin

With this stack trace:

[ArgumentException: Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule must be a valid class implenting Mediachase.BusinessFoundation.Data.Business.IPlugin]
   Mediachase.BusinessFoundation.Data.AssemblyUtil.LoadObject(String type, String interfaceName) +1196
   Mediachase.BusinessFoundation.Data.AssemblyUtil.LoadObject(String type, Type interfaceType) +204
   Mediachase.BusinessFoundation.Data.AssemblyUtil.LoadObject(String type) +165
   Mediachase.BusinessFoundation.Data.Business.BusinessManager.FindPluginsByRequest(Request request, EventPipeLineStage eventStage) +302
   Mediachase.BusinessFoundation.Data.Business.BusinessManager.ExecutePlugins(EventPipeLineStage eventPipeLineStage) +135
   Mediachase.BusinessFoundation.Data.Business.BusinessManager.Execute(Request request) +566
   Mediachase.BusinessFoundation.Data.Business.BusinessManager.List(String metaClassName, FilterElement[] filters) +105
   Mediachase.Commerce.Customers.CustomerContext.InnerGetContactByUserId(String userId) +125
   EPiServer.Framework.Cache.ObjectInstanceCacheExtensions.ReadThrough(IObjectInstanceCache cache, String key, Func`1 readValue, Func`2 evictionPolicy) +95
   Mediachase.Commerce.Extensions.ObjectInstanceCacheExtensions.ReadThrough(IObjectInstanceCache cache, Boolean useCache, String cacheKey, IEnumerable`1 masterKeys, TimeSpan duration, Func`1 load) +236
   Mediachase.Commerce.Extensions.ObjectInstanceCacheExtensions.ReadThrough(IObjectInstanceCache cache, String cacheKey, IEnumerable`1 masterKeys, TimeSpan duration, Func`1 load) +100
   Mediachase.Commerce.Customers.CustomersCache.ReadThrough(String key, IEnumerable`1 masterKeys, TimeSpan timeout, Func`1 load) +256
   Mediachase.Commerce.Customers.CustomerContext.GetContactByUserId(String userId) +208
   Mediachase.Commerce.Security.PrincipalExtensions.GetCustomerContact(IPrincipal principal) +217
   Mediachase.Commerce.Security.PrincipalExtensions.GetContactId(IPrincipal principal) +145
   Mediachase.Commerce.Core.Modules.BusinessFoundationInitializeModule.context_AuthorizeRequest(Object sender, EventArgs e) +53
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +92


I've found that the class in the error, Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule, is under EPiServer.Commerce.Core.10.0.1, which is as expected version 10.0.1.

I've attempted:

  • Cleaning (and manually deleting anything remaining in all the solutions' bin folders) and rebuilding the solution.
  • Downgrading EPiServer.Commerce.Core to 10.0.0. That didn't work, and obviously neither did it when I re-updated to 10.0.1.
  • Restarting IIS which I'm using to run the sites in dev.
  • Stopping IIS and manually deleting everything in the temp-folders for .NET.
  • Restarting the computer.
  • I've also had a more experienced colleagure take a look at it, with no success.

And a load of other smaller things.

It's worth noting that I've only been working on the CMS part for some time now, and it's at least a few weeks since last time I had the Commerce-project in the solution running. 

Thus now I'm deferring to you, Internet. Do you have any ideas?

#171637
Edited, Nov 14, 2016 11:12
Vote:
 

Hi,

You should make sure your Configs\baf.manager.data.config contains only this 

<?xml version="1.0"?>
<businessManager>
<handlers>
<add metaClass="Folder" method="*" type="Mediachase.Commerce.Assets.FolderRequestHandler, Mediachase.Commerce" />
<add metaClass="FolderElement" method="*" type="Mediachase.Commerce.Assets.FolderElementRequestHandler, Mediachase.Commerce" />
<add metaClass="Contact" method="*" type="Mediachase.Commerce.Customers.Handlers.ContactRequestHandler, Mediachase.Commerce" />
<add metaClass="Organization" method="*" type="Mediachase.Commerce.Customers.Handlers.OrganizationRequestHandler, Mediachase.Commerce" />
<add metaClass="Address" method="*" type="Mediachase.Commerce.Customers.Handlers.CustomerRequestHandlerBase, Mediachase.Commerce" />
<add metaClass="CreditCard" method="*" type="Mediachase.Commerce.Customers.Handlers.CreditCardRequestHandler, Mediachase.Commerce" />
<add metaClass="CustomizationItem" method="*" type="Mediachase.Commerce.Customization.CustomizationItemRequestHandler, Mediachase.Commerce" />
<add metaClass="CustomizationItemArgument" method="*" type="Mediachase.Commerce.Customization.CustomizationItemArgumentRequestHandler, Mediachase.Commerce" />
<add metaClass="CustomPage" method="*" type="Mediachase.Commerce.Customization.CustomPageRequestHandler, Mediachase.Commerce" />
</handlers>
<plugins>
<add method="List" metaClass="CustomPage" eventStage="PostMainOperationInsideTranasaction" type="Mediachase.Commerce.Customization.Plugins.CustomPageNormalizationPlugin, Mediachase.Commerce" />
<add method="Create" metaClass="*" eventStage="PreMainOperation" type="Mediachase.Commerce.Core.RecentReferenceHistory.RecentReferenceDetectPlugin, Mediachase.Commerce" />
<add method="Update" metaClass="*" eventStage="PreMainOperation" type="Mediachase.Commerce.Core.RecentReferenceHistory.RecentReferenceDetectPlugin, Mediachase.Commerce" />
<add method="Delete" metaClass="*" eventStage="PreMainOperation" type="Mediachase.Commerce.Core.RecentReferenceHistory.RecentReferenceCleanupPlugin, Mediachase.Commerce" />
<add method="Delete" metaClass="*" eventStage="PreMainOperationInsideTranasaction" type="Mediachase.Commerce.Core.CleanupBridgeElementPlugin, Mediachase.Commerce" />
</plugins>
</businessManager>

When you upgrade the upgrade script should remove the unused lines, but I suspect for some reasons it did not do it for you.

Regards,

/Q

#171639
Edited, Nov 14, 2016 11:28
Vote:
 
<p>I assume you meant the file <span>Configs\baf.data.manager.config</span></p> <p><span>You're right, it works now. <br /></span><span>Thank you for the help, it's much appreciated!</span></p>
#171642
Nov 14, 2016 11:33
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* 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.