Gadget resource error EPiServer.Shell.Resources.Texts

Vote:
 

Hi!

I have a few gadgets that take a while to load (2min).



The net tab in FF shows that this link is not loaded:
http://www.doro.se/customui/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.Resources.Texts&culture=en-GB
With the following error:
System.NullReferenceException: Object reference not set to an instance of an object.
   at EPiServer.Shell.UI.Controllers.ResourcesController.GetLocalizationResource(String typeName, CultureInfo culture)
 
Other resource links, llike this, work fine.
http://www.doro.se/customui/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.UI.Resources.DatePicker&culture=en-GB
 
I have the same error in my development environment but the error comes very quick, so the time is not noticable. Seems that some resource is missing or does not have sufficient rights, but I cannot find out how to fix it.

Thanks for any help!

#54656
Oct 25, 2011 21:27
Vote:
 
#54692
Oct 28, 2011 13:40
Vote:
 

Some more info:

looking into Episerver.Shell with IlSpy shows a embedded resource, EPiServer.Shell.Resources.Texts.resources, but I am not sure it is the one to be used.

Also curious why the timeout takes so long time (2min) in production, when it only takes milliseconds in my dev environment and in staging (staging is very similar to production)?

If I cannot solve the issue, I would at least like to have a quick failure so our users can go on working with the gadgets.

 

Even more info from logs:

2011-11-02 13:14:00,258 DEBUG [6] EPiServer.Web.UrlRewriteModuleBase.BeginRequestEventHandler - Starting request with Url http://www.mysite/customui/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.Resources.Texts&culture=en-GB
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Web.UrlRewriteModule.HttpUrlRewriteToInternal - Url is not valid for rewrite. Returning URL http://www.mysite.com/customui/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.Resources.Texts&culture=en-GB
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Web.UrlRewriteModuleBase.BeginRequestEventHandler - Exiting with no rewrite, Url is http://www.mysite.dom/customui/Shell/Resources/GetLocalizationResource?typeName=EPiServer.Shell.Resources.Texts&culture=en-GB
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Security.BasicAuthentication.Application_AuthenticateRequest - Already authenticated emma
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Shell.Web.Routing.ModuleRouteCollection.GetRouteData - Not routing '~/customui/Shell/Resources/GetLocalizationResource' since it doesn't start with '~/public'
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Shell.Web.Routing.ModuleRouteCollection.GetRouteData - Found route with values moduleArea=Shell, controller=Resources, action=GetLocalizationResource, id= for path:~/customui/Shell/Resources/GetLocalizationResource
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Shell.Web.Routing.ModuleRouteCollection.GetRouteData - Not routing '~/UrlRouting.axd' since it doesn't start with '~/public'
2011-11-02 13:14:00,274 DEBUG [6] EPiServer.Shell.Web.Routing.ModuleRouteCollection.GetRouteData - Not routing '~/UrlRouting.axd' since it doesn't start with '~/customui'
2011-11-02 13:14:00,289 DEBUG [6] EPiServer.Shell.Web.Mvc.ModuleControllerFactory.CreateController - Creating controller 'Resources' with type: EPiServer.Shell.UI.Controllers.ResourcesController
2011-11-02 13:14:00,289 DEBUG [6] EPiServer.Shell.Web.Mvc.ModuleMvcHandler.ProcessRequest - Executing controller: EPiServer.Shell.UI.Controllers.ResourcesController
2011-11-02 13:14:00,289 ERROR [6] EPiServer.Global.Global_Error - 1.2.5 Unhandled exception in ASP.NET
System.NullReferenceException: Object reference not set to an instance of an object.
   at EPiServer.Shell.UI.Controllers.ResourcesController.GetLocalizationResource(String typeName, CultureInfo culture)
   at lambda_method(ExecutionScope , ControllerBase , Object[] )
   at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
   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__DisplayClassa.<InvokeActionMethodWithFilters>b__7()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9()
   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 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
   at EPiServer.Shell.Web.Mvc.ModuleMvcHandler.ProcessRequest(HttpContextBase httpContext)
   at System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

 

So this methods gets called and null reference appears.

private const string JsWrapper = "epi.shell.resource.add('{0}', {1});";

        [AcceptVerbs(HttpVerbs.Get), OutputCache(CacheProfile = "ClientResourceCache"), CompressFilter]

        public JavaScriptResult GetLocalizationResource(string typeName, CultureInfo culture)
        {
            Type type = Type.GetType(typeName);
            return new JavaScriptResult
            {
                Script = string.Format("epi.shell.resource.add('{0}', {1});", type.FullName, new JsonResourceSerializer(type).GetResourcesAsJson(culture))
            };
        }

 

My guess - type is not found or the json serializer has troubles. Is this a bug or does anybody else use gadgets without this error?

Thanks for any input!
/ Markus

#54776
Edited, Nov 02, 2011 13:33
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.