Open Balbhimpsl opened 6 years ago
Create a minimal repro of this and put it up on GitHub and we will PR a solution there 👍
Hi Bernhard, Thanks for the quick reply.As suggested, I have attached minimal repro. Steps to run (reproduce) Extract attached Zip. Open solution Build the solution Click "Run all" in Test explorer Open log file from C:\temp\DemoLog_{yyyy.MM.dd}.text. It will have the exception details.
Hi Bernhard, Any updates on this. I am waiting for your response.
Thanks and regards Balbhim
Hi Bernhard, Could you please update on this.
ASP.NET Core 2.0
I have QueryDispatcher and CommandDispatcher registered as Transient. Each dispatcher contains injected Transient Repositories with scoped DbContexts.
In my middleware i access this dispatchers from context.RequestServices.GetService After success call of QueryDispatcher.Execute next request to CommandDispatcher breaks with:
System.InvalidOperationException: Attempt to create a scoped instance without a current scope
Hi, I am writing the integration test using Nunit and in business logic Microsoft.Practices.ServiceLocator being used. I initialised ServiceLocator as below ServiceLocator.SetLocatorProvider(() => new LightInjectServiceLocator(webApiContainer)); where webApiContainer is Lightinject 5.1.0 ServiceContainer. I am using in-memory Httpserver to run the controllers in httpContext. Controller runs asynchronously using async/await. As per documentation on git hub, I set the below property after enable web API on container and did not see any improvement. webApiContainer.ScopeManagerProvider = new PerLogicalCallContextScopeManagerProvider(); Specific test if i run alone, it is running fine .If I run it in Parallel with other test Iget following error.
Microsoft.Practices.ServiceLocation.ActivationException: Activation error occured while trying to get instance of type IUserProvider, key "" ---> System.InvalidOperationException: Attempt to create a scoped instance without a current scope. at EPPS.LightInject.PerScopeLifetime.GetInstance(Funcd19.MoveNext() in D:\EM\EPPS\Feature\Elli.EPPS.Integration\Domain\LockRates\LockRatesDomain.cs:line 149
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Elli.EPPS.Service.Controllers.RatesController.d 10.MoveNext() in D:\EM\EPPS\Feature\Elli.EPPS.Service\Controllers\RatesController.cs:line 90
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Threading.Tasks.TaskHelpersExtensions.d3`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d 0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.d 5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d 5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d 0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.d 5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d 5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.d5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d 0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.d2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.AuthenticationFilterResult.d 0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
1 createInstance, Scope scope) in D:\EM\EPPS\Feature\EPPS.LightInject\LightInject.cs:line 5514 at DynamicMethod(Object[] ) at EPPS.LightInject.ServiceContainer.GetInstance(Type serviceType) in D:\EM\EPPS\Feature\EPPS.LightInject\LightInject.cs:line 2794 at EPPS.LightInject.ServiceLocation.LightInjectServiceLocator.DoGetInstance(Type serviceType, String key) in D:\EM\EPPS\Feature\EPPS.LightInject\ServiceLocation\LightInject.ServiceLocation.cs:line 61 at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 49 --- End of inner exception stack trace --- at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key) in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 53 at Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService]() in c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs:line 90 at Elli.EPPS.Integration.Common.BusinessObjects.Loan.get_User() in D:\EM\EPPS\Feature\Elli.EPPS.Integration\Common\BusinessObjects\Loan.cs:line 142 at Elli.EPPS.Integration.Domain.LockRates.LockRatesDomain.<GeneratePriceGrid>d__22.MoveNext() in D:\EM\EPPS\Feature\Elli.EPPS.Integration\Domain\LockRates\LockRatesDomain.cs:line 328 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at Elli.EPPS.Integration.Domain.LockRates.LockRatesDomain.<LockRate>d__20.MoveNext() in D:\EM\EPPS\Feature\Elli.EPPS.Integration\Domain\LockRates\LockRatesDomain.cs:line 251 at Elli.EPPS.Integration.Domain.LockRates.LockRatesDomain.<LockRate>d__20.MoveNext() in D:\EM\EPPS\Feature\Elli.EPPS.Integration\Domain\LockRates\LockRatesDomain.cs:line 271 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() at Elli.EPPS.Integration.Domain.LockRates.LockRatesDomain.