Introduction
I upgraded my ConfigMgr 2309 lab to 2403 to try out the new release but things didn’t quite go to plan. After the upgrade the console upgraded as normal but when launching it I got an error.
There were a bunch of errors in event viewer at the time I attempted to start the console. Highlighted below is the .NET error.
And here is the text from that error:
Application: Microsoft.ConfigurationManagement.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Collections.Generic.KeyNotFoundException
at System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(System.__Canon)
at Microsoft.ConfigurationManagement.ManagementProvider.SmsNamedValuesDictionary.get_Item(System.String)
at Microsoft.ConfigurationManagement.AdminConsole.SccmTreeNavigationNodeProviderBase.GetTasks(System.Uri, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelNodeBase>, Microsoft.EnterpriseManagement.ConsoleFramework.TaskQueryCriteria)
at Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNodeTasks(Microsoft.EnterpriseManagement.UI.DataModel.DataQueryBase, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelNodeBase>)
at Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.DoAction(Microsoft.EnterpriseManagement.UI.DataModel.DataQueryBase, System.Collections.Generic.IList`1<System.Uri>, System.Collections.Generic.IDictionary`2<System.String,System.Object>, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.UI.DataModel.IDataItem>, System.String)
at Microsoft.EnterpriseManagement.UI.DataModel.QueryQueue.StartExecuteQuery(System.Object, Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs)
at Microsoft.ConfigurationManagement.AdminConsole.ConsoleJobExceptionHandler.ExecuteJob(System.ComponentModel.IComponent, System.EventHandler`1<Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs>, System.Object, Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs)
at Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobsService.JobThread(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
I checked the version of .NET installed on this Windows Server 2016 server and it was 4.6.2, which should be OK according to the docs, including for the Console. However those same docs recommended that if possible you should install the latest version of .NET, 4.8.
A quick glance at the 2403 ConfigMgrPreReq.log revealed that .NET 4.8 maybe IS a requirement and a failure was logged but not noticed as it only generated a warning.
After all the .NET hints, I decided to download and install the offline installer for .NET 4.8, and rebooted the server.
Once done, the console launches without issue.
I’ve informed the Microsoft Product Group as maybe the prereq checks and docs should point out that .NET 4.8 is actually required rather than recommended.
Thank you! Your issue was my issue as well. Your fix worked with me too.
Thanks for posting this. I had the same issue, same errors, was running .Net 4.6. All good after 4.8 install and reboot.
Awesome, this fixed my issue
Thanks very much. That fixed my site server too 🙂