Activities of "rogercprops"

There was a company Nuget library in the default Nuget.config. I removed it and that fixed it.

Thank you

Just reopened Abp Studio and this it's what is in the log for today 2025-03-12 05:40:01.985 -05:00 [INF] Loaded ABP modules: 2025-03-12 05:40:01.987 -05:00 [INF] - Volo.Abp.Studio.UI.AbpStudioUIHostModule ... Rest of modules 2025-03-12 05:40:01.988 -05:00 [INF] Loaded ABP modules: 2025-03-12 05:40:01.988 -05:00 [INF] - Volo.Abp.Studio.Extensions.StandardTemplates.AbpStudioExtensionsStandardTemplatesCoreModule 2025-03-12 05:40:01.988 -05:00 [INF] - Volo.Abp.Studio.AbpStudioDomainModule ... Rest of modules 2025-03-12 05:40:01.988 -05:00 [INF] Loaded ABP modules: 2025-03-12 05:40:01.988 -05:00 [INF] - Volo.Abp.Studio.Extensions.StandardTemplates.UI.AbpStudioExtensionsStandardTemplatesUIModule 2025-03-12 05:40:01.988 -05:00 [INF] - Volo.Abp.Studio.Extensions.StandardTemplates.AbpStudioExtensionsStandardTemplatesCoreModule ... Rest of modules 2025-03-12 05:40:02.013 -05:00 [INF] Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl 2025-03-12 05:40:02.014 -05:00 [INF] Quartz Scheduler created 2025-03-12 05:40:02.014 -05:00 [INF] JobFactory set to: Quartz.Simpl.MicrosoftDependencyInjectionJobFactory 2025-03-12 05:40:02.022 -05:00 [INF] RAMJobStore initialized. 2025-03-12 05:40:02.022 -05:00 [INF] Quartz Scheduler 3.13.0.0 - '05815d17-416a-45ac-9809-54449954e3ba' with instanceId 'NON_CLUSTERED' initialized 2025-03-12 05:40:02.022 -05:00 [INF] Using thread pool 'Quartz.Simpl.DefaultThreadPool', size: 10 2025-03-12 05:40:02.022 -05:00 [INF] Using job store 'Quartz.Simpl.RAMJobStore', supports persistence: False, clustered: False 2025-03-12 05:40:02.024 -05:00 [INF] Adding 0 jobs, 0 triggers. 2025-03-12 05:40:02.028 -05:00 [INF] Scheduler 05815d17-416a-45ac-9809-54449954e3ba_$_NON_CLUSTERED started. 2025-03-12 05:40:02.254 -05:00 [INF] Starting ABP Studio Backend... 2025-03-12 05:40:02.325 -05:00 [INF] Initialized all ABP modules. 2025-03-12 05:40:02.402 -05:00 [INF] Application started. Press Ctrl+C to shut down. 2025-03-12 05:40:02.402 -05:00 [INF] Hosting environment: Production 2025-03-12 05:40:02.402 -05:00 [INF] Content root path: / 2025-03-12 05:40:05.823 -05:00 [INF] Setting shell environment variables for /bin/zsh 2025-03-12 05:40:06.105 -05:00 [INF] Set shell environment variable: XPC_SERVICE_NAME=application.volo.abp.studio.ui.host.275297326.275297962 2025-03-12 05:40:06.105 -05:00 [INF] Set shell environment variable: USER=rogerhopkins 2025-03-12 05:40:06.105 -05:00 [INF] Set shell environment variable: COMMAND_MODE=unix2003 2025-03-12 05:40:06.106 -05:00 [INF] Set shell environment variable: __CFBundleIdentifier=volo.abp.studio.ui.host 2025-03-12 05:40:06.106 -05:00 [INF] Set shell environment variable: __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0 2025-03-12 05:40:06.106 -05:00 [INF] Set shell environment variable: TMPDIR=/var/folders/cn/j4xfhgq91m3ft78bmt00pg6c0000gn/T/ 2025-03-12 05:40:06.106 -05:00 [INF] Set shell environment variable: LOGNAME=rogerhopkins 2025-03-12 05:40:06.106 -05:00 [INF] Original PATH: /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/lib/node_modules/@quasar/cli/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/usr/local/share/dotnet:/Users/rogerhopkins/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/rogerhopkins/.dotnet/tools 2025-03-12 05:40:06.107 -05:00 [INF] Added the following paths: /Users/rogerhopkins/.dotnet, /usr/local/share/dotnet/x64, /Users/rogerhopkins/.abp/studio/cli/old, /opt/homebrew/opt/dotnet@8/bin, /opt/homebrew/opt/dotnet@9/bin, /usr/local/opt/node/bin, /usr/local/Cellar/node, /Users/rogerhopkins/.nvm/versions/node/v18.20.6/bin, /Users/rogerhopkins/.nvm/versions/node/v20.9.0/bin, /opt/homebrew/opt/node/bin, /opt/homebrew/opt/nvm/nvm.sh, /usr/local/opt/nvm/nvm.sh 2025-03-12 05:40:06.108 -05:00 [INF] Set shell environment variable: PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/lib/node_modules/@quasar/cli/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/usr/local/share/dotnet:/Users/rogerhopkins/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/rogerhopkins/.dotnet/tools:/Users/rogerhopkins/.dotnet:/usr/local/share/dotnet/x64:/Users/rogerhopkins/.abp/studio/cli/old:/opt/homebrew/opt/dotnet@8/bin:/opt/homebrew/opt/dotnet@9/bin:/usr/local/opt/node/bin:/usr/local/Cellar/node:/Users/rogerhopkins/.nvm/versions/node/v18.20.6/bin:/Users/rogerhopkins/.nvm/versions/node/v20.9.0/bin:/opt/homebrew/opt/node/bin:/opt/homebrew/opt/nvm/nvm.sh:/usr/local/opt/nvm/nvm.sh 2025-03-12 05:40:06.108 -05:00 [INF] Set shell environment variable: XPC_FLAGS=0x0 .. Rest of shell environment variables HOMEBREW_BREW_GIT_REMOTE=/https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git 2025-03-12 05:40:06.112 -05:00 [INF] Set .NET environment variable: HOMEBREW_CORE_GIT_REMOTE=/https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git 2025-03-12 05:40:07.079 -05:00 [INF] Received HTTP response headers after 759.2526ms - 200 2025-03-12 05:40:07.083 -05:00 [INF] End processing HTTP request after 766.8781ms - 200 2025-03-12 05:40:07.316 -05:00 [INF] Trying to connect to ABP Studio Backend: http://localhost:38271 2025-03-12 05:40:07.965 -05:00 [INF] Start processing HTTP request GET https://abp.io/api/app/post?* 2025-03-12 05:40:07.965 -05:00 [INF] Sending HTTP request GET https://abp.io/api/app/post?* 2025-03-12 05:40:08.144 -05:00 [INF] Received HTTP response headers after 179.338ms - 200 2025-03-12 05:40:08.144 -05:00 [INF] End processing HTTP request after 179.678ms - 200 2025-03-12 05:40:10.088 -05:00 [INF] Starting task execution: Checking license end time 2025-03-12 05:40:10.092 -05:00 [INF] Completed task execution: Checking license end time 2025-03-12 05:40:10.593 -05:00 [INF] Received HTTP response headers after 571.5116ms - 200 2025-03-12 05:40:10.593 -05:00 [INF] End processing HTTP request after 571.7332ms - 200 2025-03-12 05:40:10.601 -05:00 [INF] Starting task execution: Checking pre-requirements 2025-03-12 05:40:12.539 -05:00 [INF] Trying to connect to ABP Studio Backend: http://localhost:38271 2025-03-12 05:40:16.881 -05:00 [INF] CLI command executed. Command: abp cli version Working directory: / {"ExitCode":0,"IsSuccess":true,"StartTime":"2025-03-12T05:40:13.6240470-05:00","ExitTime":"2025-03-12T05:40:16.8807040-05:00","RunTime":"00:00:03.2566570","$type":"CommandResult"} 2025-03-12 05:40:26.125 -05:00 [WRN] .NET tool Volo.Abp.Studio.Cli installation failed. Exit code: 1, Output: Unhandled exception: NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source https://packagelibrary.dmssolutionsweb.net/nuget. ---> System.Net.Http.HttpRequestException: No route to host (packagelibrary.dmssolutionsweb.net:443) ---> System.Net.Sockets.SocketException (65): No route to host at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.InjectNewHttp11ConnectionAsync(QueueItem queueItem) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.AuthenticationHelper.SendWithAuthAsync(HttpRequestMessage request, Uri authUri, Boolean async, ICredentials credentials, Boolean preAuthenticate, Boolean isProxyAuth, Boolean doRequestAuth, HttpConnectionPool pool, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at NuGet.Protocol.ServerWarningLogHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at NuGet.Protocol.HttpSourceAuthenticationHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at NuGet.Protocol.HttpRetryHandler.<>c__DisplayClass5_1.<<SendAsync>b__0>d.MoveNext() --- End of stack trace from previous location --- at NuGet.Protocol.TimeoutUtility.StartWithTimeout[T](Func2 getTask, TimeSpan timeout, String timeoutMessage, CancellationToken token) at NuGet.Protocol.HttpRetryHandler.SendAsync(HttpRetryHandlerRequest request, String source, ILogger log, CancellationToken cancellationToken) at NuGet.Protocol.HttpSource.GetThrottledResponse(Func1 requestFactory, TimeSpan requestTimeout, TimeSpan downloadTimeout, Int32 maxTries, Boolean isRetry, Boolean isLastAttempt, Guid sessionId, ILogger log, CancellationToken cancellationToken) at NuGet.Protocol.HttpSource.ProcessResponseAsync[T](HttpSourceRequest request, Func2 processAsync, SourceCacheContext cacheContext, ILogger log, CancellationToken token) at ODataServiceDocumentUtils.CreateODataServiceDocumentResourceV2(String url, HttpSource client, DateTime utcNow, ILogger log, CancellationToken token) --- End of inner exception stack trace --- at ODataServiceDocumentUtils.CreateODataServiceDocumentResourceV2(String url, HttpSource client, DateTime utcNow, ILogger log, CancellationToken token) at NuGet.Protocol.ODataServiceDocumentResourceV2Provider.TryCreate(SourceRepository source, CancellationToken token) at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T](CancellationToken token) at NuGet.Protocol.PackageMetadataResourceV2FeedProvider.TryCreate(SourceRepository source, CancellationToken token) at NuGet.Protocol.Core.Types.SourceRepository.GetResourceAsync[T](CancellationToken token) at Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageDownloader.GetPackageMetadataAsync(PackageSource source, String packageIdentifier, Boolean includePrerelease, Boolean includeUnlisted, CancellationToken cancellationToken) at Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageDownloader.GetMatchingVersionInternalAsync(String packageIdentifier, IEnumerable`1 packageSources, VersionRange versionRange, CancellationToken cancellationToken) at Microsoft.DotNet.Cli.NuGetPackageDownloader.NuGetPackageDownloader.GetBestPackageVersionAsync(PackageId packageId, VersionRange versionRange, PackageSourceLocation packageSourceLocation) at Microsoft.DotNet.Cli.ToolPackage.ToolPackageDownloader.GetNuGetVersion(PackageLocation packageLocation, PackageId packageId, VerbosityOptions verbosity, VersionRange versionRange, Boolean isGlobalTool) at Microsoft.DotNet.Tools.Tool.Install.ToolInstallGlobalOrToolPathCommand.GetBestMatchNugetVersion(PackageId packageId, VersionRange versionRange, IToolPackageDownloader toolPackageDownloader) at Microsoft.DotNet.Tools.Tool.Install.ToolInstallGlobalOrToolPathCommand.ExecuteInstallCommand(PackageId packageId) at Microsoft.DotNet.Tools.Tool.Install.ToolInstallGlobalOrToolPathCommand.Execute() at Microsoft.DotNet.Tools.Tool.Update.ToolUpdateGlobalOrToolPathCommand.Execute() at System.CommandLine.Invocation.InvocationPipeline.Invoke(ParseResult parseResult) at System.CommandLine.ParseResult.Invoke() at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan startupTime, ITelemetry telemetryClient) , StandardOutput: 2025-03-12 05:40:29.128 -05:00 [INF] Completed task execution: Checking pre-requirements 2025-03-12 05:40:29.129 -05:00 [INF] Starting task execution: Loading extensions 2025-03-12 05:40:29.146 -05:00 [INF] Completed task execution: Loading extensions 2025-03-12 05:40:29.146 -05:00 [INF] Starting task execution: Checking for the new version of ABP Studio 2025-03-12 05:40:29.433 -05:00 [INF] [VPK] Checking for updates... URL: https://abp.io/api/abp-studio/r/download/osx 2025-03-12 05:40:29.450 -05:00 [INF] Downloading release file 'releases.beta.json' from 'https://abp.io/api/abp-studio/r/download/osx/releases.beta.json?arch=arm64&os=osx&rid=osx-arm64'. 2025-03-12 05:40:29.451 -05:00 [INF] [VPK] Creating HttpClient for AbpIoFileDownloader 2025-03-12 05:40:29.452 -05:00 [INF] Start processing HTTP request GET https://abp.io/api/abp-studio/r/download/osx/releases.beta.json?* 2025-03-12 05:40:29.452 -05:00 [INF] Sending HTTP request GET https://abp.io/api/abp-studio/r/download/osx/releases.beta.json?* 2025-03-12 05:40:30.245 -05:00 [INF] Received HTTP response headers after 792.4848ms - 200 2025-03-12 05:40:30.245 -05:00 [INF] End processing HTTP request after 793.0346ms - 200 2025-03-12 05:40:30.253 -05:00 [INF] Found newer remote release available (0.9.24 -> 0.9.25). 2025-03-12 05:40:30.253 -05:00 [INF] There is no local/base package available for this update, so delta updates will be disabled. 2025-03-12 05:40:30.270 -05:00 [INF] Downloading full release (abp-studio-0.9.25-beta-full.nupkg) 2025-03-12 05:40:30.271 -05:00 [INF] Downloading 'abp-studio-0.9.25-beta-full.nupkg' from 'https://abp.io/api/abp-studio/r/download/osx/abp-studio-0.9.25-beta-full.nupkg'. 2025-03-12 05:40:30.271 -05:00 [INF] [VPK] Creating HttpClient for AbpIoFileDownloader 2025-03-12 05:40:30.272 -05:00 [INF] Start processing HTTP request GET https://abp.io/api/abp-studio/r/download/osx/abp-studio-0.9.25-beta-full.nupkg 2025-03-12 05:40:30.272 -05:00 [INF] Sending HTTP request GET https://abp.io/api/abp-studio/r/download/osx/abp-studio-0.9.25-beta-full.nupkg 2025-03-12 05:40:30.274 -05:00 [INF] Completed task execution: Checking for the new version of ABP Studio 2025-03-12 05:40:30.610 -05:00 [INF] Received HTTP response headers after 337.6146ms - 200 2025-03-12 05:40:30.610 -05:00 [INF] End processing HTTP request after 338.1997ms - 200 2025-03-12 05:40:42.687 -05:00 [INF] [VPK] Downloading update: 4 2025-03-12 05:40:46.211 -05:00 [INF] [VPK] Downloading update: 6 2025-03-12 05:40:50.693 -05:00 [INF] [VPK] Downloading update: 10 2025-03-12 05:40:55.735 -05:00 [INF] [VPK] Downloading update: 12 2025-03-12 05:41:04.340 -05:00 [INF] [VPK] Downloading update: 16 2025-03-12 05:41:12.419 -05:00 [INF] [VPK] Downloading update: 18 2025-03-12 05:41:23.033 -05:00 [INF] [VPK] Downloading update: 22

  • Template: microservice

  • Created ABP Studio Version: 0.9.23

  • Current ABP Studio Version: 0.9.24

  • Multi-Tenancy: Yes

  • UI Framework: mvc

  • Theme: leptonx

  • Theme Style: system

  • Run Install Libs: Yes

  • Database Provider: ef

  • Database Management System: sqlserver

  • Mobile Framework: none

  • Public Website: No

  • Include Tests: Yes

  • Dynamic Localization: Yes

  • Kubernetes Configuration: Yes

  • Grafana Dashboard: Yes

  • Use Local References: No

  • Optional Modules:

    • GDPR
    • TextTemplateManagement
    • AuditLogging
    • OpenIddictAdmin
  • Steps to reproduce the issue:

  • Used the upgrade utility within Abp Studio

  • Also deleted the Abp Studio app and redownloaded from the Abp website and ran the install package.

In both cases got the error below

Ok. I updated the module. However it's probably fine to have the AbpDistributedEventBus use MongoDB in the same database.

However I had to add code to configure the SQL dbcontexts Configure<AbpDbContextOptions>(options => { options.Configure<PermissionManagementDbContext>(dbContextOptions => { dbContextOptions.UseSqlServer(); }); ... remaining Sql db contexts

Here's the revised MemberConfigDbContext

using CloverleafCMS.MemberConfig.Members;
using MongoDB.Driver;
using Volo.Abp.Data;
using Volo.Abp.MongoDB;
using Volo.Abp.MongoDB.DistributedEvents;

namespace CloverleafCMS.MemberConfig.Data;

[ConnectionStringName(DatabaseName)]

public class MemberConfigDbContext :
    AbpMongoDbContext,
    IHasEventInbox,
    IHasEventOutbox
{
    public IMongoCollection<Member> Members => Collection<Member>();
    public const string DatabaseName = "MemberConfig";

    public IMongoCollection<IncomingEventRecord> IncomingEvents => Collection<IncomingEventRecord>();
    public IMongoCollection<OutgoingEventRecord> OutgoingEvents => Collection<OutgoingEventRecord>();


    protected override void CreateModel(IMongoModelBuilder modelBuilder)
    {
        base.CreateModel(modelBuilder);

        modelBuilder.ConfigureEventInbox();
        modelBuilder.ConfigureEventOutbox();
    }
}

I was able to build and run the application. However when I execute the post route of the API I get this error: Error] ---------- RemoteServiceErrorInfo ---------- { "code": null, "message": "An internal error occurred during your request!", "details": null, "data": null, "validationErrors": null }

3/5/2025 9:15:38 PM [Error] Autofac.Core.DependencyResolutionException: An exception was thrown while activating Castle.Proxies.MembersAppServiceProxy -> CloverleafCMS.MemberConfig.Members.MongoMemberRepository. ---> Autofac.Core.DependencyResolutionException: None of the constructors found on type 'CloverleafCMS.MemberConfig.Members.MongoMemberRepository' can be invoked with the available services and parameters: Cannot resolve parameter 'Volo.Abp.MongoDB.IMongoDbContextProvider1[CloverleafCMS.MemberConfig.Data.MemberConfigDbContext] dbContextProvider' of constructor 'Void .ctor(Volo.Abp.MongoDB.IMongoDbContextProvider1[CloverleafCMS.MemberConfig.Data.MemberConfigDbContext])'.

See https://autofac.rtfd.io/help/no-constructors-bindable for more info.

  • ABP Framework version: v9.0.2 (Commercial)
  • UI Type: N/A
  • Database System: EF Core
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
    • Template: microservice
  • Created ABP Studio Version: 0.9.23
  • Current ABP Studio Version: 0.9.23
  • Multi-Tenancy: Yes
  • UI Framework: mvc
  • Theme: leptonx
  • Theme Style: system
  • Run Install Libs: Yes
  • Database Provider: ef
  • Database Management System: sqlserver
  • Mobile Framework: none
  • Public Website: No
  • Include Tests: Yes
  • Dynamic Localization: Yes
  • Kubernetes Configuration: Yes
  • Grafana Dashboard: Yes
  • Use Local References: No
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • AuditLogging
    • OpenIddictAdmin
  • Exception message and full stack trace:
  • Error from VS Code debug** Exception has occurred: CLR/System.IO.IOException Exception thrown: 'System.IO.IOException' in System.Private.CoreLib.dll: 'Failed to bind to address http://localhost:81.' Inner exceptions found, see $exception in variables window for more details. Innermost exception System.Net.Sockets.SocketException : Permission denied at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.<BindAsync>d__10.MoveNext() at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_0`1.<

** Full stack trace from debug console**

You may only use the Microsoft Visual Studio .NET/C/C++ Debugger (vsdbg) with Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you develop and test your applications.

[17:02:30 INF] Starting CloverleafCMS.ServicesService [17:02:32 INF] Loaded ABP modules: [17:02:32 INF] - CloverleafCMS.ServicesService.CloverleafCMSServicesServiceModule [17:02:32 INF] - Volo.Abp.BlobStoring.Database.EntityFrameworkCore.BlobStoringDatabaseEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.BlobStoring.Database.BlobStoringDatabaseDomainModule [17:02:32 INF] - Volo.Abp.Domain.AbpDddDomainModule [17:02:32 INF] - Volo.Abp.Auditing.AbpAuditingModule [17:02:32 INF] - Volo.Abp.Data.AbpDataModule [17:02:32 INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule [17:02:32 INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule [17:02:32 INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule [17:02:32 INF] - Volo.Abp.Uow.AbpUnitOfWorkModule [17:02:32 INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule [17:02:32 INF] - Volo.Abp.Json.AbpJsonModule [17:02:32 INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule [17:02:32 INF] - Volo.Abp.Json.AbpJsonAbstractionsModule [17:02:32 INF] - Volo.Abp.Timing.AbpTimingModule [17:02:32 INF] - Volo.Abp.Localization.AbpLocalizationModule [17:02:32 INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule [17:02:32 INF] - Volo.Abp.Settings.AbpSettingsModule [17:02:32 INF] - Volo.Abp.Security.AbpSecurityModule [17:02:32 INF] - Volo.Abp.Threading.AbpThreadingModule [17:02:32 INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule [17:02:32 INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule [17:02:32 INF] - Volo.Abp.Auditing.AbpAuditingContractsModule [17:02:32 INF] - Volo.Abp.EventBus.AbpEventBusModule [17:02:32 INF] - Volo.Abp.Guids.AbpGuidsModule [17:02:32 INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule [17:02:32 INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule [17:02:32 INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule [17:02:32 INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule [17:02:32 INF] - Volo.Abp.Specifications.AbpSpecificationsModule [17:02:32 INF] - Volo.Abp.Caching.AbpCachingModule [17:02:32 INF] - Volo.Abp.Serialization.AbpSerializationModule [17:02:32 INF] - Volo.Abp.Domain.AbpDddDomainSharedModule [17:02:32 INF] - Volo.Abp.BlobStoring.AbpBlobStoringModule [17:02:32 INF] - Volo.Abp.BlobStoring.Database.BlobStoringDatabaseDomainSharedModule [17:02:32 INF] - Volo.Abp.Validation.AbpValidationModule [17:02:32 INF] - Volo.Abp.EntityFrameworkCore.AbpEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.SettingManagement.EntityFrameworkCore.AbpSettingManagementEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule [17:02:32 INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule [17:02:32 INF] - Volo.Abp.Features.AbpFeaturesModule [17:02:32 INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule [17:02:32 INF] - Volo.Abp.LanguageManagement.EntityFrameworkCore.LanguageManagementEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.LanguageManagement.LanguageManagementDomainModule [17:02:32 INF] - Volo.Abp.LanguageManagement.LanguageManagementDomainSharedModule [17:02:32 INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule [17:02:32 INF] - Volo.Abp.PermissionManagement.EntityFrameworkCore.AbpPermissionManagementEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule [17:02:32 INF] - Volo.Abp.Authorization.AbpAuthorizationModule [17:02:32 INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule [17:02:32 INF] - Volo.Abp.FeatureManagement.EntityFrameworkCore.AbpFeatureManagementEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule [17:02:32 INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule [17:02:32 INF] - Volo.Abp.AuditLogging.EntityFrameworkCore.AbpAuditLoggingEntityFrameworkCoreModule [17:02:32 INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule [17:02:32 INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule [17:02:32 INF] - Volo.Saas.EntityFrameworkCore.SaasEntityFrameworkCoreModule [17:02:32 INF] - Volo.Saas.SaasDomainModule [17:02:32 INF] - Volo.Saas.SaasDomainSharedModule [17:02:32 INF] - Volo.Payment.AbpPaymentDomainSharedModule [17:02:32 INF] - Volo.Abp.EntityFrameworkCore.SqlServer.AbpEntityFrameworkCoreSqlServerModule [17:02:32 INF] - CloverleafCMS.ServicesService.CloverleafCMSServicesServiceContractsModule [17:02:32 INF] - Volo.Abp.UI.AbpUiModule [17:02:32 INF] - Volo.Abp.Commercial.SuiteTemplates.VoloAbpCommercialSuiteTemplatesModule [17:02:32 INF] - Volo.Abp.Application.AbpDddApplicationContractsModule [17:02:32 INF] - Volo.Abp.Autofac.AbpAutofacModule [17:02:32 INF] - Volo.Abp.Castle.AbpCastleCoreModule [17:02:32 INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule [17:02:32 INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule [17:02:32 INF] - Volo.Abp.Http.AbpHttpModule [17:02:32 INF] - Volo.Abp.Http.AbpHttpAbstractionsModule [17:02:32 INF] - Volo.Abp.Minify.AbpMinifyModule [17:02:32 INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule [17:02:32 INF] - Volo.Abp.Swashbuckle.AbpSwashbuckleModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule [17:02:32 INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule [17:02:32 INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule [17:02:32 INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule [17:02:32 INF] - Volo.Abp.Application.AbpDddApplicationModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule [17:02:32 INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule [17:02:32 INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule [17:02:32 INF] - Volo.Abp.EventBus.RabbitMq.AbpEventBusRabbitMqModule [17:02:32 INF] - Volo.Abp.RabbitMQ.AbpRabbitMqModule [17:02:32 INF] - Volo.Abp.BackgroundJobs.RabbitMQ.AbpBackgroundJobsRabbitMqModule [17:02:32 INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule [17:02:32 INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule [17:02:32 INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule [17:02:32 INF] - Volo.Abp.Studio.Client.AspNetCore.AbpStudioClientAspNetCoreModule [17:02:32 INF] - Volo.Abp.Studio.AbpStudioClientModule [17:02:32 INF] - Volo.Abp.Studio.AbpStudioClientContractsModule [17:02:32 INF] - Volo.Abp.Http.Client.AbpHttpClientModule [17:02:32 INF] - Volo.Abp.RemoteServices.AbpRemoteServicesModule [17:02:32 INF] Trying to acquire the distributed lock for database migration: ServicesService. [17:02:32 INF] Distributed lock is acquired for database migration: ServicesService... [17:02:33 INF] Seeding data... [17:02:33 INF] Distributed lock has been released for database migration: ServicesService... [17:02:34 DBG] Waiting to acquire the distributed lock for saving external localizations... [17:02:34 INF] Saving external localizations... [17:02:34 INF] Initialized all ABP modules. [17:02:35 WRN] Overriding address(es) 'http://localhost:44344'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. [17:02:35 INF] Unable to bind to http://localhost:81 on the IPv4 loopback interface: 'Permission denied'. [17:02:35 INF] Unable to bind to http://localhost:81 on the IPv6 loopback interface: 'Permission denied'. [17:02:35 ERR] Hosting failed to start System.IO.IOException: Failed to bind to address http://localhost:81. ---> System.AggregateException: One or more errors occurred. (Permission denied) (Permission denied) ---> System.Net.Sockets.SocketException (13): Permission denied at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.<>c__DisplayClass28_01.&lt;&lt;StartAsync&gt;g__OnBind|0>d.MoveNext() --- End of stack trace from previous location --- at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.LocalhostListenOptions.BindAsync(AddressBindContext context, CancellationToken cancellationToken) --- End of inner exception stack trace --- ---> (Inner Exception [#1](https://abp.io/QA/Questions/1)) System.Net.Sockets.SocketException (13): Permission denied at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportOptions.CreateDefaultBoundListenSocket(EndPoint endpoint) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.TransportManager.BindAsync(EndPoint endPoint, ConnectionDelegate connectionDelegate, EndpointConfig endpointConfig, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServerImpl.&lt;&gt;c__DisplayClass28_01.<

--- End of inner exception stack trace ---

  • Steps to reproduce the issue:
    • Created a new solution in ABP Studio using the Microservice template
    • Created a micro-service with standard endpoints and created an entity for the service using Abp Suite (no issues)
    • Updated the micro-service to add a Grpc endpoint according to this documentation: Using Grpc
    • Also looked at this article referenced in the documentation Using gRPC with the ABP Framework | ABP Community but it is a different approach so we didn't follow it.

From appsettings.development.json { "App": { "EnablePII": true }, "Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:5000", "Protocols": "Http1AndHttp2" }, "Https": { "Url": "https://localhost:44344", "Protocols": "Http1AndHttp2" }, "gRPC": { "Url": "http://localhost:81", "Protocols": "Http2" } } }

}

Let me know if you need additional info to help debug this issue.

It looks like you'd didn't read the full question.

We're on Abp V9 and I generated the solution and microservice using Abp Studio version 09.23. This is the solution configuration.

  • Template: microservice
  • Created ABP Studio Version: 0.9.23
  • Current ABP Studio Version: 0.9.23
  • Multi-Tenancy: Yes
  • UI Framework: mvc
  • Theme: leptonx
  • Theme Style: system
  • Run Install Libs: Yes
  • Database Provider: ef
  • Database Management System: sqlserver
  • Mobile Framework: none
  • Public Website: No
  • Include Tests: Yes
  • Dynamic Localization: Yes
  • Kubernetes Configuration: Yes
  • Grafana Dashboard: Yes
  • Use Local References: No
  • Optional Modules:
    • GDPR
    • TextTemplateManagement
    • AuditLogging
    • OpenIddictAdmin

The document link you sent looks like it's based on a previous version of the Microservice template and assumes you want to change everything to MongoDb. In our case we want the Abp microservices as well as most of our microservices to use SQL Server and a couple of other microservices to use MongoDB.

In the new Microservice (MemberConfig) I created withAbp Studio I selected MongoDb for the database provider. The solution that was generated is all MongDb including DistributedEvents, FeatureManagement, LanguageManagement, PermissionManagement and SettingManagement.

Below I've copied the DbContext and CloverleafCMSMemberConfigModule deleting what I thought was irrelevant code.

Please tell me what I need to update/add/delete so that the DistributedEvents, FeatureManagement, LanguageManagement, PermissionManagement and SettingManagement packages use SQL Server and the rest of the MemberConfig microservice use MongDb?

It would be very helpful to know that someone on the Abp team has gone through similar steps using a current version of everything (ABP Studio, Abp Suite and Microservice template).

This is the MemberConfigDbContext class

...other usings
using Volo.Abp.LanguageManagement;
using Volo.Abp.PermissionManagement;
using Volo.Abp.SettingManagement;
using Volo.Abp.Studio.Client.AspNetCore;
using Volo.Abp.Swashbuckle;
using Volo.Abp.Security.Claims;
using Volo.Abp.SettingManagement.MongoDB;
using Volo.Abp.PermissionManagement.MongoDB;
using Volo.Abp.LanguageManagement.MongoDB;
using Volo.Abp.FeatureManagement.MongoDB;
using Volo.Abp.AuditLogging.MongoDB;
using Volo.Saas.MongoDB;
using Volo.Abp.BlobStoring.Database.MongoDB;
using Volo.Abp.MongoDB.DistributedEvents;

namespace CloverleafCMS.MemberConfig;

[DependsOn(
typeof(BlobStoringDatabaseMongoDbModule),
typeof(AbpSettingManagementMongoDbModule),
typeof(LanguageManagementMongoDbModule),
typeof(AbpPermissionManagementMongoDbModule),
typeof(AbpFeatureManagementMongoDbModule),
typeof(AbpAuditLoggingMongoDbModule),
typeof(SaasMongoDbModule),
... other DependsOn,
typeof(AbpHttpClientModule)
)]

And this is the CloverleafCMSMemberConfigModule class

public class CloverleafCMSMemberConfigModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var configuration = context.Services.GetConfiguration();
var env = context.Services.GetHostingEnvironment();

var redis = CreateRedisConnection(configuration);

... other configures
ConfigureDatabase(context);
... other configures        
context.Services.TransformAbpClaims();
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
var configuration = context.GetConfiguration();

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

... other code
}

private void ConfigureDatabase(ServiceConfigurationContext context)
{
Configure&lt;AbpDbConnectionOptions&gt;(options =>
{
    options.Databases.Configure("Administration", database =>
    {
        database.MappedConnections.Add(AbpPermissionManagementDbProperties.ConnectionStringName);
        database.MappedConnections.Add(AbpFeatureManagementDbProperties.ConnectionStringName);
        database.MappedConnections.Add(AbpSettingManagementDbProperties.ConnectionStringName);
    });
    
    options.Databases.Configure("AuditLoggingService", database =>
    {
        database.MappedConnections.Add(AbpAuditLoggingDbProperties.ConnectionStringName);
    });

    options.Databases.Configure("SaasService", database =>
    {
        database.MappedConnections.Add(SaasDbProperties.ConnectionStringName);
    });
    
    options.Databases.Configure("LanguageService", database =>
    {
        database.MappedConnections.Add(LanguageManagementDbProperties.ConnectionStringName);
    });
});

context.Services.AddMongoDbContext&lt;MemberConfigDbContext&gt;(options =>
{
    options.AddDefaultRepositories();
});

context.Services.AddAlwaysDisableUnitOfWorkTransaction();
Configure&lt;AbpUnitOfWorkDefaultOptions&gt;(options =>
{
    options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled;
});
}

private void ConfigureDistributedEventBus()
{
Configure&lt;AbpDistributedEventBusOptions&gt;(options =>
{
    options.Inboxes.Configure(config =>
    {
        config.UseMongoDbContext&lt;MemberConfigDbContext&gt;();
    });

    options.Outboxes.Configure(config =>
    {
        config.UseMongoDbContext&lt;MemberConfigDbContext&gt;();
    });
});
}

private void ConfigureIntegrationServices()
{
Configure&lt;AbpAspNetCoreMvcOptions&gt;(options =>
{
    options.ExposeIntegrationServices = true;
});

}

 private void ConfigureObjectMapper(ServiceConfigurationContext context
 {
 
context.Services.AddAutoMapperObjectMapper&lt;CloverleafCMSMemberConfigModule&gt;();

Configure&lt;AbpAutoMapperOptions&gt;(options =>
{
    options.AddMaps&lt;CloverleafCMSMemberConfigModule&gt;(validate: true);
});
}
  • ABP Framework version: Commercial 9.04
  • UI Type: N/A
  • Database System: EF Core & MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes
  • Exception message and full stack trace: N/A
  • Steps to reproduce the issue:

We created a new Microservice solution using Abp Studio and selected EF Core as the database. So all of the Abp generated microservices (Administration, AuditLogging, Identity, etc.) are using MS Sql databases

Most of our microservices use EF Core but we have a couple that use MongoDB.

I added a new microservice module using Studio and selected MongoDB as the database provider. I then created an entity using Abp Suite and generated all of the code. In the appsettings file the connection strings for the Abp microservices are correctly pointing to the SQL Server databases. I updated the connection string for the new Microservice with the connection string to the MongoDB project.

When I ran the new microservice it correctly created the collections for the new Microservice but it also added collections for the Abp microservices (AbpFeatureGroups, AbpFeatureValues, AbpPermissions, etc) in the mongo database.

Looking at the code I see these in the application module. using Volo.Abp.SettingManagement.MongoDB; using Volo.Abp.PermissionManagement.MongoDB; using Volo.Abp.LanguageManagement.MongoDB; using Volo.Abp.FeatureManagement.MongoDB; using Volo.Abp.AuditLogging.MongoDB; using Volo.Saas.MongoDB; using Volo.Abp.BlobStoring.Database.MongoDB;

I updated the csproj file and the module to use EF Core packages but am getting errors configuring the database for the microservice entity.

I then reviewed the answer to this support question https://abp.io/support/questions/1269/using-MongoDB-in-microservice-service-inside-microservice-solution-which-uses-efcore but it appears written for v8 and it seems there are significant changes to the microservice template in V9.

Is there a document or can you provide detailed steps to update the microservice to use EntityFrameworkCore for the Abp services and MongoDb for our microservice?

Thank you in advance.

I mistakenly uploaded the same image twice. Here's the screenshot showing the processes running in activity monitory:

  • ABP Framework version: v9.0.4
  • ABP Studio version: 0.9.23
  • UI Type: N/A
  • Database System: EF Core
  • Tiered (for MVC) or Auth Server Separated (for Angular): Yes
  • Exception message and full stack trace: Port 44370 is in use. Please close the application that uses this port and try again.
  • Steps to reproduce the issue:

I submitted a response the to the community ABP Studio bugs support question but haven't seen a response.

We're using the microservices template and I'm running ABP Studio on a Macbook M1 with Mac OS Sequoia 15.3.1.

When I start the applications/services from Studio and then stop them they don't actually stop. So the next time I try to start them I get the message that the port is already in use. I've tried killing the processes on those ports but I see this message in the logs for a service when I try to restart it. Already closed: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=320, text='CONNECTION_FORCED - broker forced connection closure with reason 'shutdown'', classId=0, methodId=0

The only work around I've found is to restart my Mac which if I do this multiple times a day it adds up to a lot of wasted time.

Not sure if anyone else using MacOs is having this issue but when running the Microservice solution in Abp Studio, if I stop a service (or all services) it doesn't actually stop the process. If I try to restart the service it just keeps restarting and exiting.

If I navigate to the Swagger url for the service it brings it up (e.g. localhost:44317/swagger) so obviously it hasn't stopped.

The only work around I've found is to restart my Mac.

Below are screenshots of the Adminstration Service supposedly stopped and the exiting with Code 1 continuously after I restart it.

Showing 1 to 10 of 68 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
Do you need assistance from an ABP expert?
Schedule a Meeting
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v9.3.0-preview. Updated on April 11, 2025, 10:10