This is a migrated thread and some comments may be shown as answers.

[Solved] MVC3 Out Of Memory Exception

0 Answers 65 Views
Menu
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Kags
Top achievements
Rank 1
Kags asked on 02 Aug 2012, 06:40 AM

After deploying an MVC3 application that has Telerik Extensions menu, I have noted there are times it throws an OutOfMemoryException and after that the application freezes and no user is able to use the application until after about an hour or so.

I managed to trace the errors from the windows event log and the following is a stack trace of one of the errors extracted from the event log

Exception information:

Exception type: OutOfMemoryException
Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
at System.RuntimeTypeHandle.ConstructName(RuntimeTypeHandle handle,
Boolean nameSpace, Boolean fullInst, Boolean assembly, StringHandleOnStack retString)
at System.RuntimeType.RuntimeTypeCache.ConstructName(String& name, Boolean nameSpace, Boolean fullinst, Boolean assembly)
at System.RuntimeType.get_Name()
at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerTypeCache.<GetAllControllerTypes>b__d(Type type)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at Telerik.Web.Mvc.Extensions.CollectionExtensions.AddRange[T](ICollection`1 instance, IEnumerable`1 collection)
at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerTypeCache.GetAllControllerTypes()
at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerTypeCache.<GetControllerTypesWithinNamespaces>b__4()
 at Telerik.Web.Mvc.Infrastructure.Implementation.Cache.Get[T](String key, Func`1 defaultValueFactory)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerTypeCache.GetControllerTypesWithinNamespaces(String controllerName, IEnumerable`1 namespaces)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerTypeCache.GetControllerTypes(String controllerName)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerDescriptorCache.ControllerDescriptorFactory(String controllerName, String areaName)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerDescriptorCache.<>c__DisplayClass1.<GetControllerDescriptor>b__0()
 at Telerik.Web.Mvc.Infrastructure.Implementation.Cache.Get[T](String key, Func`1 defaultValueFactory)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerDescriptorCache.GetControllerDescriptor(String controllerName, String areaName)
 at Telerik.Web.Mvc.Infrastructure.Implementation.AuthorizationContextCache.AuthorizationContextFactory(RequestContext requestContext, String controllerName, String actionName, String areaName)
 at Telerik.Web.Mvc.Infrastructure.Implementation.AuthorizationContextCache.<>c__DisplayClass1.<GetAuthorizationContext>b__0()
 at Telerik.Web.Mvc.Infrastructure.Implementation.Cache.Get[T](String key, Func`1 defaultValueFactory)
 at Telerik.Web.Mvc.Infrastructure.Implementation.AuthorizationContextCache.GetAuthorizationContext(RequestContext requestContext, String controllerName, String actionName, RouteValueDictionary routeValues)
 at Telerik.Web.Mvc.Infrastructure.Implementation.ControllerAuthorization.IsAccessibleToUser(RequestContext requestContext, String controllerName, String actionName, RouteValueDictionary routeValues)
 at Telerik.Web.Mvc.Infrastructure.Implementation.NavigationItemAuthorization.IsAccessibleToUser(RequestContext requestContext, INavigatable navigationItem)
 at Telerik.Web.Mvc.UI.NavigatableExtensions.<>c__DisplayClass2`1.<IsAccessible>b__1(T item)
 at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
 at Telerik.Web.Mvc.UI.NavigatableExtensions.IsAccessible[T](IEnumerable`1 items, INavigationItemAuthorization authorization, ViewContext viewContext)
 at Telerik.Web.Mvc.UI.NavigationItemContainerExtensions.WriteItem[TComponent,TItem](TItem item, TComponent component, IHtmlNode parentTag, INavigationComponentHtmlBuilder`1 builder)
 at Telerik.Web.Mvc.UI.Menu.<>c__DisplayClass4.<WriteHtml>b__3(MenuItem item)
 at Telerik.Web.Mvc.Extensions.EnumerableExtensions.Each[T](IEnumerable`1 instance, Action`1 action)
 at Telerik.Web.Mvc.UI.Menu.WriteHtml(HtmlTextWriter writer)
 at Telerik.Web.Mvc.UI.ViewComponentBase.Render()
 at Telerik.Web.Mvc.UI.ViewComponentBuilderBase`2.Render()
 at ASP._Page_Views_Shared__Layout_cshtml.Execute() in e:\kidda\Views\Shared\_Layout.cshtml:line 34
 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
 at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
 at System.Web.WebPages.WebPageBase.<>c__DisplayClass7.<RenderPageCore>b__6(TextWriter writer)
 at System.Web.WebPages.HelperResult.WriteTo(TextWriter writer)
 at System.Web.WebPages.WebPageBase.Write(HelperResult result)
 at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body)
 at System.Web.WebPages.WebPageBase.PopContext()
 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
 at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
 at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
 at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
 at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
 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 System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
 at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
 at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
 at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
 at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d()
 at System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f)
 at System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)
 at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
 at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
 at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Common in the stack trace to all error stack traces is line 34 in _Layout.cshtml which draws the menu using the following code 

<nav>
<div id="topMenu" >
 <div style="width: 45%; float: right">
   @{ Html.Telerik().Menu()
   .Name("Menu")
   .Items(menu =>
   {
    menu.Add()
    .Text("Ngaari")
    .Items(item =>
    {
     item.Add().Text("List").Action("Index", "Ngaari");
     item.Add().Text("Statement").Action("Index", "Statement");
    });
   menu.Add()
    .Text("Njia")
    .Action("Index", "Njia");
   menu.Add()
    .Text("Kiama")
    .Action("Index", "Kiama");
   menu.Add()
    .Text("Ngaari Type")
    .Action("Index", "NgaariType");
   menu.Add()
    .Text("Admin")
    .Items(item =>
    {
     item.Add().Text("List Users").Action("Index", "Account");
     item.Add().Text("Add User").Action("NewUser", "Account");
     item.Add().Text("Change Password").Action("ChangePassword", "Account");
    });
  })
  .Render();
  }
 </div>
</div>
</nav>

The application is running on a Windows 2003 SP2 which has 4Gb of memory and the users are using Mozilla Firefox to access the system.

I have googled and searched in Telerik forums and SOF and found no answers or similar users who could have had a similar problem.

What could be causing this error and how can I go about in resolving it?

Tags
Menu
Asked by
Kags
Top achievements
Rank 1
Share this question
or