2015-04-29 2 views
2

У нас есть приложение asp.net MVC 4 и один раз в 2 недели запросы IIS висят из-за проблемы с блокировкой в ​​nInject. Любое предложение о том, как отладить эту проблему дальше? Мы используем Ninject 3.0.1.10. Планирование обновления до последней версии. Я получил этот стек от windbg! Clrstack и тот же от инструмента Debugdiag.Ninject deadlock issue

Есть ли способ, который я могу получить от инструмента windbg, какой конкретный тип Ninject не работает.

OS Thread Id: 0x169c (42) 
     Child SP    IP Call Site 
000000001e9cc908 0000000077c1e18a [GCFrame: 000000001e9cc908] 
000000001e9cca48 0000000077c1e18a [GCFrame: 000000001e9cca48] 
000000001e9cca88 0000000077c1e18a [HelperMethodFrame_1OBJ: 000000001e9cca88] System.Threading.Monitor.Enter(System.Object) 
000000001e9ccb80 000007fed9d5fecb Ninject.Activation.Context.Resolve() 
000000001e9ccbf0 000007fef1fd02b8 System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext() 
000000001e9ccc40 000007fef1fd5a0c System.Linq.Enumerable.SingleOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
000000001e9cccb0 000007fed9d5cdaa Ninject.Activation.Strategies.PropertyInjectionStrategy.Activate(Ninject.Activation.IContext, Ninject.Activation.InstanceReference) 
000000001e9ccd40 000007fed9d5b6b8 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Action`1<System.__Canon>) 
000000001e9ccd90 000007fed9d6017b Ninject.Activation.Context.Resolve() 
000000001e9cce00 000007fef1fd02b8 System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext() 
000000001e9cce50 000007fef1fd5a0c System.Linq.Enumerable.SingleOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
000000001e9ccec0 000007fed9d5cdaa Ninject.Activation.Strategies.PropertyInjectionStrategy.Activate(Ninject.Activation.IContext, Ninject.Activation.InstanceReference) 
000000001e9ccf50 000007fed9d5b6b8 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Action`1<System.__Canon>) 
000000001e9ccfa0 000007fed9d6017b Ninject.Activation.Context.Resolve() 
000000001e9cd010 000007fef1fd02b8 System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext() 
000000001e9cd060 000007fef1fd5a0c System.Linq.Enumerable.SingleOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
000000001e9cd0d0 000007fed9d5cdaa Ninject.Activation.Strategies.PropertyInjectionStrategy.Activate(Ninject.Activation.IContext, Ninject.Activation.InstanceReference) 
000000001e9cd160 000007fed9d5b6b8 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Action`1<System.__Canon>) 
000000001e9cd1b0 000007fed9d6017b Ninject.Activation.Context.Resolve() 
000000001e9cd220 000007fef1fd02b8 System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext() 
000000001e9cd270 000007fef1fd5a0c System.Linq.Enumerable.SingleOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
000000001e9cd2e0 000007fed9d5cdaa Ninject.Activation.Strategies.PropertyInjectionStrategy.Activate(Ninject.Activation.IContext, Ninject.Activation.InstanceReference) 
000000001e9cd370 000007fed9d5b6b8 Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Action`1<System.__Canon>) 
000000001e9cd3c0 000007fed9d6017b Ninject.Activation.Context.Resolve() 
000000001e9cd430 000007fef1fd02b8 System.Linq.Enumerable+WhereSelectEnumerableIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext() 
000000001e9cd480 000007fef1fd5a0c System.Linq.Enumerable.SingleOrDefault[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
000000001e9cd4f0 000007fee8adfa2e System.Web.Mvc.DefaultControllerFactory+DefaultControllerActivator.Create(System.Web.Routing.RequestContext, System.Type) 
000000001e9cd550 000007fee8adf7e9 System.Web.Mvc.DefaultControllerFactory.CreateController(System.Web.Routing.RequestContext, System.String) 
000000001e9cd590 000007fee8ac1421 System.Web.Mvc.MvcHandler.ProcessRequestInit(System.Web.HttpContextBase, System.Web.Mvc.IController ByRef, System.Web.Mvc.IControllerFactory ByRef) 
000000001e9cd600 000007fee8ac0fe7 System.Web.Mvc.MvcHandler.BeginProcessRequest(System.Web.HttpContextBase, System.AsyncCallback, System.Object) 
000000001e9cd680 000007feedcd7502 System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
000000001e9cd760 000007feedc9d380 System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef) 
000000001e9cd800 000007feedcbb31a System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception) 
000000001e9cd950 000007feedc9d523 System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback) 
000000001e9cd9a0 000007feedc9727e System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext) 
000000001e9cda40 000007feedca04e1 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32) 
000000001e9cdc50 000007feedc9fea2 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32) 
000000001e9cdca0 000007feee40aa21 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32) 
000000001e9ce488 000007fef374a9ce [InlinedCallFrame: 000000001e9ce488] System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef) 
000000001e9ce488 000007feedd4d84b [InlinedCallFrame: 000000001e9ce488] System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef) 
000000001e9ce460 000007feedd4d84b DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, System.Web.RequestNotificationStatus ByRef) 
000000001e9ce530 000007feedca06cf System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32) 
000000001e9ce740 000007feedc9fea2 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32) 
000000001e9ce790 000007feee40aa21 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32) 
000000001e9ce9d8 000007fef374ac23 [ContextTransitionFrame: 000000001e9ce9d8] 
+0

я думаю, вы должны взглянуть на Ninject в GitHub вопрос трекера б/с AFAIR было что-то тупик, некоторое время назад. Прежде чем инвестировать слишком много, я бы обновил до последней версии. В любом случае, вы не получите никакой поддержки для старой версии. – BatteryBackupUnit

ответ

1

После обновления до последней версии Ninject, решается вопрос