Mamy aplikację ASP.NET 4.0 MVC3 działającą na serwerach z obciążeniem F5.Nie można wstawić tabeli haasowania. Współczynnik obciążenia jest zbyt wysoki. - asp.NET 4.0 MVC3
Otrzymaliśmy wyjątek poniżej. Nie robimy wielowątkowości w naszej aplikacji internetowej, ale nie wiemy, czy serwery równoważenia obciążenia F5 mogły uwzględniać to równanie. Widzimy, gdzie występuje wyjątek we wcześniejszych wersjach .NET (Większość innych postów zajmuje się .NET 2.0 i 3.5). Czy ktoś napotkał ten problem z .NET 4.0?
Wyjątek spowodował, że aplikacja stała się bezużyteczna, ponieważ po zalogowaniu nie można załadować strony bez napotkania wyjątku.
Inne linki już opinię:
- Hashtable insert failed. Load factor too high. - ASP.NET 2.0
- HashTable Insert Failed. Load Factor Too High. .NET 2.0 SP2
- Frustrating error in WPF (.NET 4.0) internals: Hashtable insert failed. Load factor too high
2012-02-02 06: 01: 42.671 [26] krytyczny systemu [(null)] - Wystąpił nieobsługiwany wyjątek w aplikacji XYZ. System.InvalidOperationException: Nie można wstawić tabeli haszującej. Współczynnik obciążenia zbyt wysoki. Najczęstszą przyczyną jest jednoczesne pisanie wielu wątków do tablicy . w System.Collections.Hashtable.Insert (klawisz Object, Object, nvalue Boolean ADD) w System.ComponentModel.TypeDescriptor.NodeFor (typ Type, Boolean createDelegator) w System.ComponentModel.TypeDescriptor.GetProvider Type (typ) w System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider..ctor (typ typ) w System.Web.Mvc.ModelBinderDictionary.GetBinder (typ modelType, IModelBinder fallbackBinder) w System.Web.Mvc.ControllerActionInvoker.GetModelBinder (ParameterDescriptor parameterDescriptor) at System.Web.Mvc.ControllerActionInvoker.GetParameterValue (ControllerContext Kontekst kontrolera, parametr ParameterDescriptor rDescriptor) w System.Web.Mvc.ControllerActionInvoker.GetParameterValues (ControllerContext controllerContext, ActionDescriptor actionDescriptor) w System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, String ActionName) w System.Web.Mvc.Controller. ExecuteCore() at System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext)
pod adresem System.Web.Mvc.MvcHandler. <> c__DisplayClass6. <> c__DisplayClassb.b__5() pod adresem System.Web.Mvc.Async.AsyncResultWrapper. <> c__DisplayClass1.b__0() pod adresem System.Web.Mvc.MvcHandler. <> c__DisplayClasse.b__d() w System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() w System.Web.HttpApplication.ExecuteStep (etap IExecutionStep, logiczna & completedSynchronously)
Jak widać ze śledzenia stosu, nie wskazuje on konkretnego miejsca w naszym kodzie, co utrudnia debugowanie.
Wszelkie rady zapobiegające temu wyjątkowi zostaną bardzo docenione.
Czy próbowałeś zablokować hashtable, wykonując swoje czynności, a następnie odblokowując? Pierwszy przykład w sekcji Uwagi: http://msdn.microsoft.com/en-us/library/system.collections.hashtable.synchronized.aspx –
@ Splash-X: Cały ślad stosu znajduje się w kodzie źródłowym. – SLaks
Byłoby pomocne określenie "kiedy użytkownik wczytuje stronę" –