Open Closed

Cannot resolve the dependency #7757


User avatar
0
sgarad created
  • ABP Framework version: 8.2.0
  • UI Type: Angular
  • Database System: MySQL
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace:
  • An exception was thrown while activating CastandCrew.PSL.VendorManagement.Samples.SampleController.
  • at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.
  • Steps to reproduce the issue: I have create a new custom module and micro service. In my module I have below entity,appservice and controller. When accessing the the controller from swagger/UI I received the above error.

Entity

  public class Vendors : Entity&lt;int&gt;, ICreationAuditedObject
  {      
      [MaxLength(128)]
      public string Name { get; set; }
      public DateTime CreationTime { get; set; }
      public Guid? CreatorId { get; set; }
      internal Vendors(string name)
      {
          Name= name;
          CreationTime = DateTime.Now;
          CreatorId = Guid.NewGuid();
      }
  }

App Service

 public class VendorAppService : VendorManagementAppService, IVendorManagementAppService
 {
     private readonly VendorManager _vendorManager;
     private readonly IRepository&lt;Vendors, int&gt; _vendorRepository;

     public VendorAppService(VendorManager vendorManager, IRepository&lt;Vendors, int&gt; vendorRepository)
     {
         _vendorManager = vendorManager;
         _vendorRepository = vendorRepository;
         ObjectMapperContext = typeof(VendorManagementApplicationModule);
     }


     [Authorize(VendorManagementPermissions.Vendors.Create)]
     public async Task&lt;VendorDto&gt; CreateAsync(VendorDto vendor)
     {
         var vendor1 = await _vendorManager.CreateAsync(
              vendor.Name
          );

         return ObjectMapper.Map&lt;Vendors, VendorDto&gt;(vendor1);
     }



     [Authorize(VendorManagementPermissions.Vendors.Delete)]
     public async Task DeleteAsync(int id)
     {
         await _vendorRepository.DeleteAsync(id);
     }



     public async Task&lt;ListResultDto&lt;VendorDto&gt;> GetAllAsync()
     {
         var vendors = await _vendorRepository.GetListAsync();
         return new ListResultDto&lt;VendorDto&gt;(
             ObjectMapper.Map&lt;List&lt;Vendors&gt;, List&lt;VendorDto&gt;>(vendors)
         );
     }

     public async Task&lt;VendorDto&gt; GetAsync(int id)
     {
         return ObjectMapper.Map&lt;Vendors, VendorDto&gt;(await _vendorRepository.GetAsync(id));
     }


     [Authorize(VendorManagementPermissions.Vendors.Create)]
     public async Task&lt;VendorDto&gt; UpdateAsync(VendorDto input)
     {
         var vendor = await _vendorRepository.GetAsync(input.Id);

         vendor.Name = input.Name;

         await _vendorRepository.UpdateAsync(vendor);

         return ObjectMapper.Map&lt;Vendors, VendorDto&gt;(vendor);
     }
 }

Controller

[Area(VendorManagementRemoteServiceConsts.ModuleName)]
[RemoteService(Name = VendorManagementRemoteServiceConsts.RemoteServiceName)]
public class VendorController : IVendorManagementAppService
{
    private readonly IVendorManagementAppService _vendorManagementAppService;

    public VendorController(IVendorManagementAppService vendorManagementAppService)
    {
        _vendorManagementAppService = vendorManagementAppService;
    }

    [Authorize]
    public Task&lt;VendorDto&gt; CreateAsync(VendorDto vendor)
    {
        return _vendorManagementAppService.CreateAsync(vendor);

    }

    [Authorize]
    public Task DeleteAsync(int id)
    {
        return _vendorManagementAppService.DeleteAsync(id);
    }

    public Task&lt;VendorDto&gt; GetAsync(int id)
    {
        return _vendorManagementAppService.GetAsync(id);
    }

    [Authorize]
    public Task&lt;ListResultDto&lt;VendorDto&gt;> GetAllAsync()
    {
        return _vendorManagementAppService.GetAllAsync();
    }


    [Authorize]
    public Task&lt;VendorDto&gt; UpdateAsync(VendorDto vendor)
    {
        return _vendorManagementAppService.UpdateAsync(vendor);
    }
}

Module configuration to include the repositories

 public override void ConfigureServices(ServiceConfigurationContext context)
 {
     context.Services.AddAbpDbContext&lt;VendorManagementDbContext&gt;(options =>
     {
         options.AddDefaultRepositories(includeAllEntities: true);        
     });
 }

Above all code is written in DDD module and reference through the micro-service. Is there anything that I'm missing?


4 Answer(s)
  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    Hi,

    can you share the full error logs

  • User Avatar
    0
    sgarad created

    Hi,

    can you share the full error logs

    8/22/2024 1:47:16 AM [Information] Request starting "HTTP/1.1" "GET" "http"://"localhost:44323""""/api/vendor-management/vendor""" - null null 8/22/2024 1:47:16 AM [Information] Executing endpoint '"CastandCrew.PSL.VendorManagement.VendorController.VendorController.GetAllAsync (CastandCrew.PSL.VendorManagement.HttpApi)"' 8/22/2024 1:47:16 AM [Information] Route matched with "{area = "vendorManagement", action = "GetAll", controller = "Vendor", page = ""}". Executing controller action with signature "System.Threading.Tasks.Task1[Volo.Abp.Application.Dtos.ListResultDto1[CastandCrew.PSL.VendorManagement.Vendor.VendorDto]] GetAllAsync()" on controller "CastandCrew.PSL.VendorManagement.VendorController.VendorController" ("CastandCrew.PSL.VendorManagement.HttpApi"). 8/22/2024 1:47:16 AM [Error] ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": { "ActivatorChain": "CastandCrew.PSL.VendorManagement.VendorController.VendorController" }, "validationErrors": null }

    8/22/2024 1:47:16 AM [Error] Autofac.Core.DependencyResolutionException: An exception was thrown while activating CastandCrew.PSL.VendorManagement.VendorController.VendorController. ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'CastandCrew.PSL.VendorManagement.VendorController.VendorController' can be invoked with the available services and parameters: Cannot resolve parameter 'CastandCrew.PSL.VendorManagement.Vendor.IVendorManagementAppService vendorManagementAppService' of constructor 'Void .ctor(CastandCrew.PSL.VendorManagement.Vendor.IVendorManagementAppService)'.

    See https://autofac.rtfd.io/help/no-constructors-bindable for more info. at Autofac.Core.Activators.Reflection.ReflectionActivator.<>c__DisplayClass14_0.<UseSingleConstructorActivation>b__0(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Builder.RegistrationBuilder3.<>c__DisplayClass41_0.<PropertiesAutowired>b__0(ResolveRequestContext context, Action1 next) at Autofac.Builder.RegistrationBuilder3.<>c__DisplayClass39_0.<OnActivated>b__0(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) --- End of inner exception stack trace --- at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action1 next) at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable1 parameters, Object& instance) at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable1 parameters) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider.<>c__DisplayClass6_0.<CreateControllerFactory>g__CreateController|0(ControllerContext controllerContext) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)

    8/22/2024 1:47:16 AM [Error] ---------- Exception Data ---------- ActivatorChain = CastandCrew.PSL.VendorManagement.VendorController.VendorController

    8/22/2024 1:47:16 AM [Information] Executing "ObjectResult", writing value of type '"Volo.Abp.Http.RemoteServiceErrorResponse"'. 8/22/2024 1:47:16 AM [Information] Executed action "CastandCrew.PSL.VendorManagement.VendorController.VendorController.GetAllAsync (CastandCrew.PSL.VendorManagement.HttpApi)" in 6.6256ms 8/22/2024 1:47:16 AM [Information] Executed endpoint '"CastandCrew.PSL.VendorManagement.VendorController.VendorController.GetAllAsync (CastandCrew.PSL.VendorManagement.HttpApi)"' 8/22/2024 1:47:16 AM [Information] Request finished "HTTP/1.1" "GET" "http"://"localhost:44323""""/api/vendor-management/vendor""" - 500 null "application/json; charset=utf-8" 20.7208ms

  • User Avatar
    0
    liangshiwei created
    Support Team Fullstack Developer

    None of the constructors found on type 'CastandCrew.PSL.VendorManagement.VendorController.VendorController' can be invoked with the available services and parameters: Cannot resolve parameter 'CastandCrew.PSL.VendorManagement.Vendor.IVendorManagementAppService vendorManagementAppService' of constructor 'Void .ctor(CastandCrew.PSL.VendorManagement.Vendor.IVendorManagementAppService)'.

    it seems like some services are not registered in the IOC.

    public class VendorAppService : VendorManagementAppService, IVendorManagementAppService

    Please rename IVendorManagementAppService to IVendorAppService

    public interface IVendorAppService : IApplicationService
    ...
    
    
    public class VendorAppService : VendorManagementAppService, IVendorAppService
    ...
    
  • User Avatar
    0
    sgarad created

    Resolved thanks.

Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on July 17, 2025, 06:22