Thursday, May 2, 2013

OM12 SP1 UR#2 Web Console Error: System.Reflection.ReflectionTypeLoadException: [ReflectionTypeLoad_LoadFailed]

06-05-2013 Update:
Savision has released updated MPs which fix this issue, as described
here.
So when you’re experiencing these issues, download the updated MPs, import them and be done with it.

I have seen this issue already a couple of times:

  1. OM12 SP1 with UR#2 is in place;
  2. Savision Live Maps is in place;
  3. Savision Live Maps MPB (Management Pack Bundle) Savision LiveMaps Presentation Summary Widget Library is imported (done automatically when installing the Savision Web Console).

When the OM12 Web Console is launched, this error is thrown:
image

Error details:

Please provide the following information to the support engineer if you have to contact Microsoft Help and Support :

System.Reflection.ReflectionTypeLoadException: [ReflectionTypeLoad_LoadFailed]
Arguments:
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.10411.00&File=mscorlib.dll&Key=ReflectionTypeLoad_LoadFailed
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.RuntimeModule.GetTypes()
   at System.Reflection.Assembly.GetTypes()
   at Microsoft.EnterpriseManagement.Presentation.DeclaredAssemblyLoader.LoadModuleCatalogFromAssembly(IModuleCatalog bootstrapperCatalog, ModuleCatalog catalog, Assembly assembly)
   at Microsoft.EnterpriseManagement.Presentation.DeclaredAssemblyLoader.CreateModuleCatalog(IEnumerable`1 assemblies)
   at Microsoft.EnterpriseManagement.Presentation.DeclaredAssemblyLoader.LoadInternal(IEnumerable`1 assemblies)
   at Microsoft.EnterpriseManagement.Presentation.DeclaredAssemblyLoader.Load(DeclaredAssembly assembly)
   at Microsoft.EnterpriseManagement.Monitoring.Components.ComponentRegistry.<>c__DisplayClass38.<GetAssemblies>b__36(DeclaredAssembly declaredAssembly)
   at System.Reactive.Linq.Observable.<>c__DisplayClass413`2.<>c__DisplayClass415.<Select>b__412(TSource x)

The default/basic troubleshooting steps didn’t help here, the error remained:

  • Running from an elevated cmd-prompt the command IISRESET;
  • Re-register asp.net (C:\Windows\Microsoft.NET\Framework64\v4.0.30319]\aspnet_regiis.exe -i –enable);
  • Removing the OM12 Web Console and reinstalling it.

So it was time for a deep dive into OM12.

Dive, dive!
Based on this posting I stopped the OM12 tracing which runs by default. This tracing must be stopped so new clean – and far more easier searchable logs - are created. This tracing is stopped by typing this command in a cmd-prompt: ~:\Program Files\System Center 2012\Operations Manager\Server\Tools\StopTracing.cmd.

Then I emptied the log file folder. For OM12 this is the folder C:\WINDOWS\Logs\OpsMgrTrace. Now all is clean and ready for a new log file to be created by the tool TraceConfig.exe, (start it with elevated permissions(!))located in ~:\Program Files\System Center 2012\Operations Manager\Server\Tools.

All Trace Areas related to the UI (User Interface) were selected by me and the trace was started by hitting the Start button in the same program.
image

Then I started the OM12 Web Console again, and let it run until the error popped up again. Tracing was stopped in the same tool and in the cmd-prompt I used to stop the tracing which runs by default, I entered this command: ~:\Program Files\System Center 2012\Operations Manager\Server\Tools\FormatTracing.cmd.

After a few minutes a nice readable log file was created, C:\WINDOWS\Logs\OpsMgrTrace\OpsMgrCustom.log.

The culprit…
To my surprise I noticed an issue with a MPB from Savision, the Savision LiveMaps Presentation Summary Widget Library:

[1]4072.7424::05/02/2013-15:39:43.651 [Microsoft.EnterpriseManagement.Presentation.Security] [] [Information] :DeclaredAssemblyDataProvider.GetDependencyAssemblies{declaredassemblydataprovider_cs463}DeclaredAssemblyDataProvider: GetDependencyAssemblies: Got 0 dependency assemblies for primary assembly Savision.LiveMaps.Presentation.SummaryWidget.SLUnitComponentsAssembly

Could it be this MP caused the broken OM12 Web Console?

Time to put it to the test by simply removing it (this MP is found in the program folder of Savision Live Maps: ~:\Program Files\Savision\Live Maps for OpsMgr 2012\Authoring Console\Management Pack\Savision.LiveMaps.Presentation.SummaryWidget.Library.mpb, so it’s easily imported again.
image

image

After the MP was removed, I run the OM12 Web Console again, and:
image

YES! The OM12 Web Console is back again! BUT….

Removing this MP breaks the Savision Web Console how ever:
image

Running the Savision Live Maps Web Console Configuration tool fixes it again by importing the Savision LiveMaps Presentation Summary Widget Library MPB which breaks – as we do know now - the OM12 Web Console… So you have to decide what’s more important:

  1. A functional OM12 Web Console and a broken Savision Web Console, resulting in the OM12 Web Console NOT being able to show the Savision Live Maps,
  2. Or a functional Savision Web Console with a broken OM12 Web Console…

Recap
Whenever you experience the same issues as described in this posting, remove the Savision MPB Savision LiveMaps Presentation Summary Widget Library and see how it goes from there.

I have good contacts with Savision so I have sent them the log file hoping they’re capable of solving this issue since Savision delivers quality products and are dedicated to reliable and good software. This posting is only intended to help other people who’re experiencing the same issues as I did.

2 comments:

Steve Beaumont said...

Updated management packs have now been released by Savision to correct this issue: http://www.savision.com/resources/news/fix-om12-sp1-ur2-web-console

Marnix Wolf said...

Hi Steve.

Thanks for the heads up. I have updated my posting accordingly. I already knew Savision would soon release a fix for it and I am glad it came out so fast.

Cheers,
Marnix