ImageVault and EPiServer page provider does not work together
I have an an EPiServer CMS 5 R2 installation with ImageVault 3.3.0.541 installed. Yesterday I tried to add a custom page provider to the project. I used the XML page provider found here: http://world.episerver.com/en/Articles/Items/Introducing-Page-Providers/#download
You will get the error:
EPiServer.BaseLibrary.ClassFactoryException: ClassFactory not initialized
and
[TypeInitializationException: The type initializer for 'EPiServer.DataFactory' threw an exception.]
EPiServer made some changes to the startup events of the application in R1 SP3. ImageVault does not implement the startup in this new way. If you look deeper in the stack trace you will see:
[Exception: Error initializing CreatedPageEvent in PluginStartup] ImageStoreNET.PluginStartup.get_CreatedPageEvent() +126
ImageVault hookes up the CreatedPageEvent to early and therefore the DataFactory.Instance isn’t instantiated.
Get the web site running
The problem is with the handler <add name="ImageVault" type="ImageStoreNET.PluginStartup, ImageVault.EPiServer5" />. Just comment this line and the application will start. I don't' know what this handler does but probably ImageVault will come up with a solution soon.
Please note that ImageVault 3.3 is not officially supported for EPiServer CMS 5 R2 SP1 according to the version matrix on http://world.episerver.com/en/Download/Categories/Version-Relations/EPiServer-CMS-5-Relations/.
Strange... ImageVault 3.2.2 is supported for EPiServer CMS 5 R2 SP1 according to your matrix. Then should also 3.3 be supported?
Great Post!
Yes according to the matrix it should. We'll have to look into it.
However, we (episerver world) had similar problems with the introduced change in startup events in the CMS, but with EPiServer Community's handler. This is a different problem but the temporary solution to it might work; Since community is not depended on CMS we moved the Community registration before CMS initialization handler in web.config. I'm not familiar with what imageVaults handler does but its worth a try.
Hi!
We will look into this and make an updated version available as soon as possible.
Please note that there might be some side effects to the suggested workaround since it will prevent ImageVault from hooking on to certain events that is required for mirroring, keeping track of used images and so on.
/Johan Magnusson, Product Manager, Meridium
The workaround ph mentioned does not work in this case. I Think it's because ImageVault is dependent of CMS in the startup.
Just a comment on the version matrix referred to and the supported version of ImageVault. The version matrix refers to the EPiServer Create+ package with all the included modules, and so far the latest version of Create+ is 1.1 (for EPiServer CMS 5 R2 SP1), supporting ImageVault 3.2.2. The next upgrade of Create+ will include ImageVault 3.3, but this version has not yet been officially released.
You can find the version matrix here: http://world.episerver.com/en/Download/Categories/Version-Relations/EPiServer-CMS-5-Relations/