Try our conversational search powered by Generative AI!

Shell key does not exist! (Upgrade from CMS5.2 to CMS6 R2)


Hi everyone!,


I have got this strange error on the Start(shell)-tab after an site upgrade from CMS5.2 to CMS6 R2.

Some links have text like "The [Edit] key does not exist in [EPiServer.Shell.Resources.Texts]." (see imagelink)




All links works but it's annoying :)

Mar 12, 2013 16:13

In CMS6 R2 the lang files got added as embedded resorces and from your error it seems it's having trouble finding them. Could you check your episerver.config to see that your vpp paths for EPiServerShell has been updated to something along the lines of this: 

"C:\Program Files (x86)\EPiServer\Framework\\Application\UI"

and that the assemblybindings have been updated in the web.config for the shell dlls?

<assemblyIdentity name="EPiServer.Shell" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
<bindingRedirect oldVersion="" newVersion="" />
<assemblyIdentity name="EPiServer.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
<bindingRedirect oldVersion="" newVersion="" />

Mar 13, 2013 8:23

Hi Petter,

I have all that code at my place, aything else I can check? :)

Mar 13, 2013 8:28

Hmm.. well then it's a bit more tricky I guess =)

I would try clearing your temporary ASP.Net files.

start -> cmd -> iisreset /stop


C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

and clear it.

iisreset /start


Mar 13, 2013 8:41

Thank you for the guideline, but it didn't work :(


Mar 13, 2013 8:48

Is the EPiServer.Shell.dll in the GAC the right version? (

Mar 13, 2013 9:36

Yes it is.

Mar 13, 2013 9:40

Don't really have anything more to go on then... Well you could reflect your dll and check if the entry exists I guess

Mar 14, 2013 10:17

Hey, I just noticed that I got this Warning (source ASP.NET 2.0.50727.0 eventid:1309 task category: web event) in my event log:


Event code: 3005

Event message: An unhandled exception has occurred.

Event time: 2013-04-03 14:49:42

Event time (UTC): 2013-04-03 12:49:42

Event ID: 13e3aed482d0435a81c47d63be7e078f

Event sequence: 185

Event occurrence: 3

Event detail code: 0


Application information:

    Application domain: /LM/W3SVC/3/ROOT-3-130094667823111729

    Trust level: Full

    Application Virtual Path: /

    Application Path: C:\EPiServer\Sites\XXX_Intranet_CMS5_UPGRADE\Intranet_CMS6\src\

    Machine name: CLT-24610XX


Process information:

    Process ID: 11776

    Process name: w3wp.exe

    Account name: IIS APPPOOL\XXX_Intranet_CMS6


Exception information:

    Exception type: ReflectionTypeLoadException

    Exception message: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.


Request information:

    Request URL: http://banconet.local/rb/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.Resources.Texts&culture=sv

    Request path: /rb/Shell/Resources/GetLocalizationResource

    User host address:


    Is authenticated: True

    Authentication Type: Forms

    Thread account name: IIS APPPOOL\XXX_Intranet_CMS6


Thread information:

    Thread ID: 15

    Thread account name: IIS APPPOOL\XXX_Intranet_CMS6

    Is impersonating: False

    Stack trace:    at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)

   at System.Reflection.Assembly.GetTypes()

   at EPiServer.Data.Dynamic.TypeResolver.ResolveType(Object sender, ResolveEventArgs args)

   at System.AppDomain.OnTypeResolveEvent(String typeName)

   at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)

   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)

   at System.RuntimeType.PrivateGetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)

   at System.Type.GetType(String typeName)

   at EPiServer.Shell.UI.Controllers.ResourcesController.GetLocalizationResource(String typeName, CultureInfo culture)

   at lambda_method(ExecutionScope , ControllerBase , Object[] )

   at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)

   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)

   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()

   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)

   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)

   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)

   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)

   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)

   at System.Web.Mvc.Controller.ExecuteCore()

   at EPiServer.Shell.Web.Mvc.ModuleMvcHandler.ProcessController(IController controller)

   at EPiServer.Shell.Web.Mvc.ModuleMvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)

   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)



Custom event details:




Just noticed that maybe I'm not alone with this(?):



Edited, Apr 03, 2013 15:17

I'm really punching in the dark here. But I see that your running your site under 2.0. So my post about emptying the temp files was incorrect. The path should be C:\Windows\Microsoft.NET\Framework64\v2.<YourVersionHere>\Temporary ASP.NET Files\root. Also if your using a 32bit system it would be just Framework and not Framework64

Apr 03, 2013 15:24

I just did with the same result, very frustrating! :(

Apr 03, 2013 15:29


Thank you for helping me find a solution for this.

I dont know if you found a solution or not but here is how I solved it.

I looked in the event log and as you I had a warning. The exception however was:
Exception type: HttpException
Exception message: The 'ClientResourceCache' cache profile is not defined. Please define it in the configuration file.

So I looked in web.config for a site with a clean install of EPiServer R2 (EPiServer CMS 6.1.379.502) and found this entry:
                <add name="ClientResourceCache" enabled="true" duration="3600" varyByParam="*" varyByContentEncoding="gzip;deflate" />

In the upgraded sites web.config this entry didnt exist, so I put it there and it worked.

Regards Hans Kindberg

Nov 15, 2013 10:47
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* 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.