Yes, It is passing through but the exception is thrown again where DBContext is accessing.
at Microsoft.EntityFrameworkCore.DbContext.CheckDisposed()
at Microsoft.EntityFrameworkCore.DbContext.get_ContextServices()
at Microsoft.EntityFrameworkCore.DbContext.get_Model()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.get_EntityType() at Microsoft.EntityFrameworkCore.Internal.InternalDbSet
1.CheckState()
at Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.get_EntityQueryable() at Microsoft.EntityFrameworkCore.Internal.InternalDbSet
1.System.Linq.IQueryable.get_Provider()
at System.Linq.Queryable.Where[TSource](IQueryable1 source, Expression
1 predicate)
at Akadimi.Books.BookManager.<SetBookAuthorsAsync>d__9.MoveNext() in D:\Akadimi\Akadimi\aspnet-core\src\Akadimi.Domain\Books\BookManager.cs:line 123
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at Akadimi.Books.BookManager.<CreateAsync>d__7.MoveNext() in D:\Akadimi\Akadimi\aspnet-core\src\Akadimi.Domain\Books\BookManager.cs:line 63
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Akadimi.Books.BooksAppService.
public class BooksAppService: ApplicationService, IBooksAppService, IDistributedEventHandler<APIBookEto>
{
private readonly BookManager _bookManager;
public BooksAppService(BookManager bookManager)
{
_bookRepository = bookRepository;
_bookManager = bookManager;
}
public virtual async Task<BookDto> CreateAsync(BookCreateDto input)
{
var titles = ObjectMapper.Map<List<BookTranslationCreateDto>, List<BookTranslation>>(input.inputTitles);
var book = await _bookManager.CreateAsync(
input.NoOfPages, input.Dimensions, input.ISBN10, input.ISBN13, input.Price, input.PublishDate,
titles, input.BookLanguageId, input.BookMediaTypeId, input.AuthorIds, input.PublisherIds, input.TagIds, input.FileId
);
return ObjectMapper.Map<Book, BookDto>(book);
}
[UnitOfWork]
public virtual Task HandleEventAsync(APIBookEto eventData)
{
Task.Run(async () =>
{
try
{
var input = ObjectMapper.Map<APIBookEto, BookCreateDto>(eventData);
var titles = ObjectMapper.Map<List<BookTranslationCreateDto>, List<BookTranslation>>(input.inputTitles);
var book = await _bookManager.CreateAsync(
input.NoOfPages, input.Dimensions, input.ISBN10, input.ISBN13, input.Price, input.PublishDate,
titles, input.BookLanguageId, input.BookMediaTypeId, input.AuthorIds, input.PublisherIds, input.TagIds, input.FileId
);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
});
return Task.CompletedTask;
}
}
I can explain the scenario. Here above you can see inside BooksAppService class I have a CreateAsync which is basically inserts data into the database. I have already written all logic inside _bookManager.CreateAsync() function. As you can see I am listening distributed event HandleEventAsync, inside this event function I am executing the same logic which is written in CreateAsync. CreateAsync method is calling through API controller which is perfectly working fine and HandleEventAsync(this is already marked as [UnitOfWork]) is calling through RabbitMq and is throwing the above exceptions.
at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveOptionalService(IComponentContext context, Service service, IEnumerable
1 parameters)
at Volo.Abp.DependencyInjection.AbpLazyServiceProvider.<>c__DisplayClass12_0.<LazyGetService>b__0()
at Volo.Abp.DependencyInjection.AbpLazyServiceProvider.LazyGetService(Type serviceType)
at Volo.Abp.DependencyInjection.AbpLazyServiceProvider.LazyGetService(Type serviceType, Object defaultValue)
at Volo.Abp.DependencyInjection.AbpLazyServiceProvider.LazyGetService[T](T defaultValue)
at Volo.Abp.Application.Services.ApplicationService.get_GuidGenerator()
at Akadimi.Books.BookAppDistEventService.<CreateAsync>d__8.MoveNext() in D:\Akadimi\Akadimi\aspnet-core\src\Akadimi.Application\Books\BookAppDistEventService.cs:line 79
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Akadimi.Books.BookAppDistEventService.<>c__DisplayClass7_0.<
ABP Framework version: v5.2.0
UI type: Angular
DB provider: EF Core
Tiered (MVC) or Identity Server Separated (Angular): yes
Exception message and stack trace:
Steps to reproduce the issue:"
I have implemented RabbitMq in my application, I am getting an exception inside HandleEventAsync when trying to access application service implemented class method. I tried to implement [UnitOfWork], but still, I am getting exceptions.
Yes it is working ..
Is it working with ABP Preview 5.3.0.rc.1?
The problem is Application stopped working immediately after adding Elsa Packages, before adding any Elsa code.