OrchardCMS / Orchard

Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform.
https://orchardproject.net
BSD 3-Clause "New" or "Revised" License
2.37k stars 1.12k forks source link

Exception for LazyFields: Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed #8724

Closed AndreaPiovanelli closed 11 months ago

AndreaPiovanelli commented 11 months ago

https://github.com/OrchardCMS/Orchard/blob/a4be7c68cb163fdc5655a3cd94d0e44341017835/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentPickerFieldHandler.cs#L33

Using the injected content manager inside the ContentPickerFieldHandler to get ContentItems property throws a System.ObjectDisposedException. This happens particularly often in pages where multiple ContentPickerFields are present (e.g. inside widgets).

AndreaPiovanelli commented 11 months ago

Copying here the complete Exception for reference:

Orchard.Exceptions.DefaultExceptionPolicy - ComuneIvrea - An unexpected exception was caught [http://localhost/OrchardLocal/ComuneIvrea/vivere-il-comune]
System.ObjectDisposedException: Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it has already been disposed.
   in Autofac.Core.Lifetime.LifetimeScope.CheckNotDisposed()
   in Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters)
   in lambda_method(Closure )
   in Orchard.Data.TransactionManager.EnsureSession(IsolationLevel level) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Data\SessionLocator.cs:riga 127
   in Orchard.Data.TransactionManager.Demand() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Data\SessionLocator.cs:riga 60
   in Orchard.Data.TransactionManager.GetSession() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Data\SessionLocator.cs:riga 56
   in Orchard.ContentManagement.DefaultContentManager.GetManyImplementation(QueryHints hints, Action`2 predicate) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\ContentManagement\DefaultContentManager.cs:riga 347
   in Orchard.ContentManagement.DefaultContentManager.GetMany[T](IEnumerable`1 ids, VersionOptions options, QueryHints hints) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\ContentManagement\DefaultContentManager.cs:riga 290
   in Orchard.ContentPicker.Handlers.ContentPickerFieldHandler.<>c__DisplayClass3_0.<Loading>b__2()
   in Orchard.ContentManagement.Utilities.LazyField`1.GetValue() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\ContentManagement\Utilities\LazyField.cs:riga 29
   in Orchard.ContentManagement.Utilities.LazyField`1.get_Value() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\ContentManagement\Utilities\LazyField.cs:riga 10
   in Orchard.ContentPicker.Fields.ContentPickerField.get_ContentItems()
   in ASP._Page_Themes_Laser_Orchard_ItaliaComuni_Views_Widget_EventiInEvidenzaWidget_cshtml.Execute() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard.Web\Themes\Laser.Orchard.ItaliaComuni\Views\Widget-EventiInEvidenzaWidget.cshtml:riga 93
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   in System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   in System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.Render(ShapeDescriptor shapeDescriptor, DisplayContext displayContext, HarvestShapeInfo harvestShapeInfo, HarvestShapeHit harvestShapeHit) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 151
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.<>c__DisplayClass20_7.<Discover>b__14(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 133
   in Orchard.DisplayManagement.Descriptors.ShapeAlterationBuilder.<>c__DisplayClass7_1.<BoundAs>b__1(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeAlterationBuilder.cs:riga 56
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Process(ShapeBinding shapeBinding, IShape shape, DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 207
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Execute(DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 103
   in Orchard.DisplayManagement.Implementation.DisplayHelper.ShapeExecute(Object shape) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 86
   in Orchard.DisplayManagement.Implementation.DisplayHelper.Invoke(String name, INamedEnumerable`1 parameters) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 44
   in Orchard.DisplayManagement.Implementation.DisplayHelper.TryInvoke(InvokeBinder binder, Object[] args, Object& result) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 29
   in CallSite.Target(Closure , CallSite , Object , Object )
   in System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
   in CallSite.Target(Closure , CallSite , Object , Object )
   in Orchard.Mvc.ViewEngines.Razor.WebViewPage`1.DisplayChildren(Object shape) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Mvc\ViewEngines\Razor\WebViewPage.cs:riga 177
   in System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
   in ASP._Page_Themes_Laser_Orchard_ItaliaComuni_Views_Zone_cshtml.Execute() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard.Web\Themes\Laser.Orchard.ItaliaComuni\Views\Zone.cshtml:riga 4
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   in System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   in System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.Render(ShapeDescriptor shapeDescriptor, DisplayContext displayContext, HarvestShapeInfo harvestShapeInfo, HarvestShapeHit harvestShapeHit) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 151
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.<>c__DisplayClass20_7.<Discover>b__14(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 133
   in Orchard.DisplayManagement.Descriptors.ShapeAlterationBuilder.<>c__DisplayClass7_1.<BoundAs>b__1(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeAlterationBuilder.cs:riga 56
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Process(ShapeBinding shapeBinding, IShape shape, DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 207
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Execute(DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 103
   in Orchard.DisplayManagement.Implementation.DisplayHelper.ShapeExecute(Object shape) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 86
   in Orchard.DisplayManagement.Implementation.DisplayHelper.Invoke(String name, INamedEnumerable`1 parameters) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 44
   in Orchard.DisplayManagement.Implementation.DisplayHelper.TryInvoke(InvokeBinder binder, Object[] args, Object& result) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 29
   in CallSite.Target(Closure , CallSite , Object , Object )
   in System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
   in CallSite.Target(Closure , CallSite , Object , Object )
   in ASP._Page_Themes_Laser_Orchard_ItaliaComuni_Views_Layout_cshtml.<>c__DisplayClass4_0.<Execute>b__1(Object x) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard.Web\Themes\Laser.Orchard.ItaliaComuni\Views\Layout.cshtml:riga 16
   in ASP._Page_Themes_Laser_Orchard_ItaliaComuni_Views_Layout_cshtml.Execute() in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard.Web\Themes\Laser.Orchard.ItaliaComuni\Views\Layout.cshtml:riga 129
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   in System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   in System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   in System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.Render(ShapeDescriptor shapeDescriptor, DisplayContext displayContext, HarvestShapeInfo harvestShapeInfo, HarvestShapeHit harvestShapeHit) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 151
   in Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy.ShapeTemplateBindingStrategy.<>c__DisplayClass20_7.<Discover>b__14(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeTemplateStrategy\ShapeTemplateBindingStrategy.cs:riga 133
   in Orchard.DisplayManagement.Descriptors.ShapeAlterationBuilder.<>c__DisplayClass7_1.<BoundAs>b__1(DisplayContext displayContext) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Descriptors\ShapeAlterationBuilder.cs:riga 56
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Process(ShapeBinding shapeBinding, IShape shape, DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 207
   in Orchard.DisplayManagement.Implementation.DefaultDisplayManager.Execute(DisplayContext context) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DefaultDisplayManager.cs:riga 103
   in Orchard.DisplayManagement.Implementation.DisplayHelper.ShapeExecute(Object shape) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 86
   in Orchard.DisplayManagement.Implementation.DisplayHelper.Invoke(String name, INamedEnumerable`1 parameters) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 44
   in Orchard.DisplayManagement.Implementation.DisplayHelper.TryInvoke(InvokeBinder binder, Object[] args, Object& result) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\DisplayManagement\Implementation\DisplayHelper.cs:riga 29
   in CallSite.Target(Closure , CallSite , Object , Object )
   in Orchard.Mvc.ViewEngines.ThemeAwareness.LayoutAwareViewEngine.<>c__DisplayClass9_0.<FindView>b__0(ViewContext viewContext, TextWriter writer, IViewDataContainer viewDataContainer) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Mvc\ViewEngines\ThemeAwareness\LayoutAwareViewEngine.cs:riga 63
   in Orchard.Mvc.ViewEngines.ThemeAwareness.LayoutAwareViewEngine.LayoutView.Render(ViewContext viewContext, TextWriter writer) in D:\Laser.Orchard\Laser.Orchard\Orchard\src\Orchard\Mvc\ViewEngines\ThemeAwareness\LayoutAwareViewEngine.cs:riga 90
   in System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
   in System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)