- When on Tridion 2013 SP1, an event system that was declared in Tridion.ContentManager.config was working as expected. - After upgrading to SDL Web 8.5, when browsing to the Content Manager Explorer (CME) the below error can be seen in browser and in Windows event logs. Initialization of the extension '<TRIDION_HOME>\bin\Tridion.Web.UI.CME.TcmExtensions.dll' failed. An item with the same key has already been added. Component: Tridion.ContentManager.CoreService Errorcode: 0 User: NT AUTHORITY\NETWORK SERVICE StackTrace Information Details: at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Tridion.ContentManager.Security.SystemPrivilegeRegistry.RegisterSystemPrivilege(String id, String titleOrResource, String descriptionOrResource) at Tridion.ContentManager.TypeRegistry.RegisterSystemPrivilege(String id, String titleOrResource, String descriptionOrResource) at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at Tridion.ContentManager.Extensibility.TcmExtension.LoadExtensions() at Tridion.ContentManager.Extensibility.TcmExtension.LoadExtensions() at Tridion.ContentManager.Extensibility.TcmExtension.InitializeExtensions() at Tridion.ContentManager.Session..ctor(String userName, String impersonationUserName) at Tridion.ContentManager.CoreService.CoreServiceBase.Impersonate(String userName) at SyncInvokeImpersonate(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Tridion.ContentManager.CoreService.CoreServiceInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)- If "<add assemblyFileName="D:\SDLWeb\bin\Tridion.Web.UI.CME.TcmExtensions.dll" />" is commented out of Tridion.ContentManager.config then the CME will load successfully and no error is seen in the Tridion or Application event viewer. - By default, Tridion.Web.UI.CME.TcmExtensions.dll is declared both in the GAC as well as declared in the Tridion.ContentManager.config. |
When using Process Monitor to monitor CM (Content Manager) server, access denied errors can be seen when browsing to the CME as in below screenshot. Error resolved after granting the NT AUTHORITY\NETWORK SERVICE user read/execute privileges to the HKLM\System\CurrentControlSet\Services\EventLog\Security node (and the Security node below it). Note that it is possible different errors may be seen on different environments, not just the one given in example for this article. Access Denied errors should be identified using Process Monitor, and the appropriate registry permissions given. |