Im trying to use https://piranhacms.org/ template but instead of using SQL Lite I have switched my project to SQL Server when I run the manager(ADMIN) page I have no problems. I can even use the admin to add data to my DB. The error only accures when I am just a normal user trying to access the site. If any one knows why this is happening or thoughts on what I could look into being the problem I would be every greatful.

I set up the datatbase using these insturctions https://piranhacms.org/docs/master/basics/database-setup

My start up file setting up my server

options.UseEF<SQLServerDb>(db =>
            db.UseSqlServer(_config.GetConnectionString("piranha")));
            options.UseIdentityWithSeed<IdentitySQLServerDb>(db =>
            db.UseSqlServer(_config.GetConnectionString("piranha")))

The user page that loads displayes this error.

An unhandled exception occurred while processing the request.
InvalidOperationException: No service for type 'Piranha.AspNetCore.Services.IApplicationService' has been registered.
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Stack Query Cookies Headers Routing
InvalidOperationException: No service for type 'Piranha.AspNetCore.Services.IApplicationService' has been registered.
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator+<>c__DisplayClass8_0.<CreateActivateInfo>b__1(ViewContext context)
Microsoft.Extensions.Internal.PropertyActivator<TContext>.Activate(object instance, TContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorPagePropertyActivator.Activate(object page, ViewContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.Activate(IRazorPage page, ViewContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderViewStartsAsync(ViewContext context)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, bool invokeViewStarts)
Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, string contentType, Nullable<int> statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, string contentType, Nullable<int> statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, string contentType, Nullable<int> statusCode)
Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)
Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0<TFilter, TFilterAsync>(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext<TFilter, TFilterAsync>(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

1

Add services.AddScoped<IApplicationService, ApplicationService>(); to ConfigurSerices in your startup.cs

    An unhandled exception occurred while processing the request.
InvalidOperationException: No service for type 'Piranha.AspNetCore.Services.IApplicationService' has been registered.
Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
Stack Query Cookies Headers Routing
InvalidOperationException: No service for type 'Piranha.AspNetCore.Services.IApplicationService' has been registered.

Your program search for IApplicationService. That means if you want use an abstraction in your program, you must resolve this abstract object.

There is many ways to resolve it. You can create an object of IApplicationService like answer below. Or you can use a middleware to resolve it.

For ASP.NET Core Dotnet version 6:

builder.Services.AddScoped<IApplicationService, ApplicationService>();

For other versions, you can accept @martijn-takken answer.

If you want more detail on this look at here:
https://docs.abp.io/en/abp/4.4/Application-Services

.NET Core supports the dependency injection design pattern. This technique help achieving Inversion of Control between the classes and their relative dependencies.

So, you need to register the IApplicationService service with the concrete type ApplicationService. The AddScoped method will register the service with a scoped lifetime (which is the lifetime of a single request)

builder.Services.AddScoped<IApplicationService, ApplicationService>();