1

我在 MVC 部分视图上遇到了 StackOverflowException。我们还通过 Unity 使用实体框架和依赖注入。

只有当我在我的 Kendo Tabstrip 中有一个动作时才会发生这种情况,如下所示:

@(Html.Kendo().TabStrip()
    .Name("mainNav")
    .HtmlAttributes(new { @class = "mainnav" })
    .Animation(false)
    .Items(i =>
    {
        i.Add().Text("Home").Action("Dashboard", "Home");
        i.Add().Text("Clients").Action("Manage", "Household");
        i.Add().Text("Properties").Action("Manage", "Property");
        i.Add().Text("Financial").Action("FinancialSummary", "Financial");
        i.Add().Text("Payables").Action("Manage", "PurchaseOrder")
            .Content(Html.Partial("~/Views/PurchaseOrder/_ManageContent.cshtml").ToString());
        i.Add().Text("Maintenance").Action("Manage", "WorkOrder");
        i.Add().Text("Capital Planning").Action("Index", "CapitalPlanning");
    })
)

如果我只有简单的动作,比如i.Add().Text("Home"),它就可以了。

异常不想向我显示调用堆栈(“无法评估表达式,因为线程处于堆栈溢出状态”),但我最终确实想到查看 Visual Studio 中的调用堆栈选项卡。从那里,调用堆栈看起来像这样:

Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuilderContext.NewBuildUp(Microsoft.Practices.ObjectBuilder2.NamedTypeBuildKey newBuildKey) + 0x1f3 bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.ObjectBuilder.NamedTypeDependencyResolverPolicy.Resolve(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xad bytes    
[Lightweight Function]  
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x47 bytes    
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0x30a bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(Microsoft.Practices.ObjectBuilder2.IBuilderContext context) + 0xcd bytes  
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.UnityContainer.DoBuildUp(System.Type t, object existing, string name, System.Collections.Generic.IEnumerable<Microsoft.Practices.Unity.ResolverOverride> resolverOverrides) + 0x285 bytes   
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.UnityContainer.DoBuildUp(System.Type t, string name, System.Collections.Generic.IEnumerable<Microsoft.Practices.Unity.ResolverOverride> resolverOverrides) + 0x4e bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.UnityContainer.Resolve(System.Type t, string name, Microsoft.Practices.Unity.ResolverOverride[] resolverOverrides) + 0x46 bytes 
Microsoft.Practices.Unity.dll!Microsoft.Practices.Unity.UnityContainerExtensions.Resolve(Microsoft.Practices.Unity.IUnityContainer container, System.Type t, Microsoft.Practices.Unity.ResolverOverride[] overrides) + 0x71 bytes   
Unity.Mvc3.dll!Unity.Mvc3.UnityDependencyResolver.GetService(System.Type serviceType) + 0x9f bytes  
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(System.Web.Routing.RequestContext requestContext, System.Type controllerType) + 0x97 bytes 
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(System.Web.Routing.RequestContext requestContext, System.Type controllerType) + 0x2b2 bytes    
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.CreateController(System.Web.Routing.RequestContext requestContext, string controllerName) + 0x15b bytes  
Kendo.Mvc.dll!Kendo.Mvc.Infrastructure.Implementation.ControllerContextCache.ControllerContextFactory(System.Web.Routing.RequestContext requestContext, string controllerName, string areaName) + 0x99 bytes        
4

1 回答 1

0

似乎 Kendo 动作与问题无关,只是足以触发 Bootstrapper 和依赖注入。由于我们其余的大部分视图都只是在 Tabstrip 内,因此没有其他任何东西有机会被执行。

尽管错误被抛出到视图中,但真正的问题是我们服务中的循环引用,例如:

public class ServiceA : IServiceA
{
    private readonly IServiceB _svcB;

    public ServiceA(IServiceB svcB)
    {
        _svcB = svcB
    }
}

public class ServiceB : IServiceB
{
    private readonly IServiceA _svcA;

    public ServiceB(IServiceA svcA)
    {
        _svcA = svcA
    }
}

当然,我们的层次结构稍微复杂一些,因此异常的来源不太明显(特别是因为异常是在 View 中引发的,而不是在实际的 Service 中引发的)。

为了解决这个问题,我要么注入基础存储库,要么将一些常用功能移到它自己的服务中。但由于真正的斗争只是确定错误发生的原因,我希望这可以节省一些时间!

于 2013-10-21T15:41:16.613 回答