Open Closed

Upgrade to 5.0 Issue #2323


User avatar
0
Rrader30 created
  • ABP Framework version: v5.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): seperated
  • Exception message and stack trace:
  • Steps to reproduce the issue:" I recently upgraded a project I have from 4.3 to 5.0. I had a lot of exceptions I needed to work through. Now my API project is crashing before it completely starts. Attached is the log file. Any help to resolve this would be appreciated.
2021-12-23 13:48:07.478 -05:00 [INF] Starting TiberVendor.HttpApi.Host.
2021-12-23 13:48:15.185 -05:00 [INF] User profile is available. Using 'C:\Users\ryanr\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
2021-12-23 13:48:15.549 -05:00 [INF] Start installing Hangfire SQL objects...
2021-12-23 13:48:15.697 -05:00 [INF] Hangfire SQL objects installed.
2021-12-23 13:48:15.757 -05:00 [INF] Starting Hangfire Server using job storage: 'SQL Server: localhost\SQLEXPRESS@TiberVendorAng'
2021-12-23 13:48:15.758 -05:00 [INF] Using the following options for SQL Server job storage: Queue poll interval: 00:00:15.
2021-12-23 13:48:15.758 -05:00 [INF] Using the following options for Hangfire Server:
    Worker count: 20
    Listening queues: 'default'
    Shutdown timeout: 00:00:15
    Schedule polling interval: 00:00:15
2021-12-23 13:48:15.771 -05:00 [DBG] Execution loop BackgroundServerProcess:90579595 has started in 10.2107 ms
2021-12-23 13:48:15.772 -05:00 [INF] Initializing UI Database
2021-12-23 13:48:15.826 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d caught stopping signal...
2021-12-23 13:48:15.829 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d caught stopped signal...
2021-12-23 13:48:15.890 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d successfully announced in 108.9271 ms
2021-12-23 13:48:15.895 -05:00 [DBG] Execution loop ServerHeartbeatProcess:e120c096 has started in 3.9227 ms
2021-12-23 13:48:15.895 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d is starting the registered dispatchers: ServerWatchdog, ServerJobCancellationWatcher, ExpirationManager, CountersAggregator, SqlServerHeartbeatProcess, Worker, DelayedJobScheduler, RecurringJobScheduler...
2021-12-23 13:48:15.895 -05:00 [DBG] Execution loop ServerHeartbeatProcess:e120c096 stopped in 4.1088 ms
2021-12-23 13:48:15.899 -05:00 [DBG] Execution loop ServerWatchdog:17bccc67 has started in 4.3167 ms
2021-12-23 13:48:15.899 -05:00 [DBG] Execution loop ServerWatchdog:17bccc67 stopped in 4.3574 ms
2021-12-23 13:48:15.904 -05:00 [DBG] Execution loop ServerJobCancellationWatcher:e29f6cba has started in 6.7077 ms
2021-12-23 13:48:15.904 -05:00 [DBG] Execution loop ServerJobCancellationWatcher:e29f6cba stopped in 6.821 ms
2021-12-23 13:48:15.910 -05:00 [DBG] Execution loop ExpirationManager:0725f7c2 has started in 8.0649 ms
2021-12-23 13:48:15.910 -05:00 [DBG] Execution loop ExpirationManager:0725f7c2 stopped in 8.1971 ms
2021-12-23 13:48:15.913 -05:00 [DBG] Execution loop CountersAggregator:439be6c0 has started in 6.2212 ms
2021-12-23 13:48:15.913 -05:00 [DBG] Execution loop CountersAggregator:439be6c0 stopped in 6.2547 ms
2021-12-23 13:48:15.919 -05:00 [DBG] Execution loop SqlServerHeartbeatProcess:f4e344fc has started in 5.6444 ms
2021-12-23 13:48:15.919 -05:00 [DBG] Execution loop SqlServerHeartbeatProcess:f4e344fc stopped in 5.6894 ms
2021-12-23 13:48:15.925 -05:00 [DBG] Execution loop Worker:24d2f18b has started in 7.6708 ms
2021-12-23 13:48:15.925 -05:00 [DBG] Execution loop Worker:24d2f18b stopped in 7.934 ms
2021-12-23 13:48:15.928 -05:00 [DBG] Execution loop Worker:c05070a1 has started in 11.4221 ms
2021-12-23 13:48:15.928 -05:00 [DBG] Execution loop Worker:c05070a1 stopped in 11.4885 ms
2021-12-23 13:48:15.933 -05:00 [DBG] Execution loop Worker:c7f005dc has started in 16.3926 ms
2021-12-23 13:48:15.934 -05:00 [DBG] Execution loop Worker:c7f005dc stopped in 16.4976 ms
2021-12-23 13:48:15.936 -05:00 [DBG] Execution loop Worker:cd7fd0ba has started in 19.1263 ms
2021-12-23 13:48:15.937 -05:00 [DBG] Execution loop Worker:cd7fd0ba stopped in 19.5377 ms
2021-12-23 13:48:15.944 -05:00 [DBG] Execution loop Worker:9cf54cf7 has started in 26.5275 ms
2021-12-23 13:48:15.944 -05:00 [DBG] Execution loop Worker:9cf54cf7 stopped in 27.4965 ms
2021-12-23 13:48:15.946 -05:00 [DBG] Execution loop Worker:62148920 has started in 29.282 ms
2021-12-23 13:48:15.946 -05:00 [DBG] Execution loop Worker:62148920 stopped in 29.3286 ms
2021-12-23 13:48:15.951 -05:00 [DBG] Execution loop Worker:8f4d5267 has started in 33.1531 ms
2021-12-23 13:48:15.951 -05:00 [DBG] Execution loop Worker:8f4d5267 stopped in 33.5867 ms
2021-12-23 13:48:15.957 -05:00 [DBG] Execution loop Worker:0146fb59 has started in 40.3228 ms
2021-12-23 13:48:15.957 -05:00 [DBG] Execution loop Worker:0146fb59 stopped in 40.4706 ms
2021-12-23 13:48:15.962 -05:00 [DBG] Execution loop Worker:c23324b3 has started in 45.0744 ms
2021-12-23 13:48:15.962 -05:00 [DBG] Execution loop Worker:c23324b3 stopped in 45.5077 ms
2021-12-23 13:48:15.965 -05:00 [DBG] Execution loop Worker:aa8ade2e has started in 47.5985 ms
2021-12-23 13:48:15.965 -05:00 [DBG] Execution loop Worker:aa8ade2e stopped in 47.6411 ms
2021-12-23 13:48:15.970 -05:00 [DBG] Execution loop Worker:d83114e5 has started in 53.1525 ms
2021-12-23 13:48:15.970 -05:00 [DBG] Execution loop Worker:d83114e5 stopped in 53.3358 ms
2021-12-23 13:48:15.976 -05:00 [DBG] Execution loop Worker:584bf70f has started in 58.9081 ms
2021-12-23 13:48:15.977 -05:00 [DBG] Execution loop Worker:584bf70f stopped in 59.5967 ms
2021-12-23 13:48:15.979 -05:00 [DBG] Execution loop Worker:3ee042b1 has started in 61.853 ms
2021-12-23 13:48:15.979 -05:00 [DBG] Execution loop Worker:3ee042b1 stopped in 62.2163 ms
2021-12-23 13:48:15.983 -05:00 [DBG] Execution loop Worker:6e7617aa has started in 65.8995 ms
2021-12-23 13:48:15.983 -05:00 [DBG] Execution loop Worker:6e7617aa stopped in 65.9383 ms
2021-12-23 13:48:15.989 -05:00 [DBG] Execution loop Worker:c394413a has started in 72.3089 ms
2021-12-23 13:48:15.990 -05:00 [DBG] Execution loop Worker:c394413a stopped in 73.0446 ms
2021-12-23 13:48:15.992 -05:00 [DBG] Execution loop Worker:81c10c93 has started in 75.2019 ms
2021-12-23 13:48:15.992 -05:00 [DBG] Execution loop Worker:81c10c93 stopped in 75.2302 ms
2021-12-23 13:48:15.997 -05:00 [DBG] Execution loop Worker:307e71f8 has started in 80.2291 ms
2021-12-23 13:48:15.997 -05:00 [DBG] Execution loop Worker:307e71f8 stopped in 80.2583 ms
2021-12-23 13:48:16.001 -05:00 [DBG] Execution loop Worker:9fc6b0fc has started in 84.2354 ms
2021-12-23 13:48:16.001 -05:00 [DBG] Execution loop Worker:9fc6b0fc stopped in 84.3294 ms
2021-12-23 13:48:16.004 -05:00 [DBG] Execution loop Worker:642a441b has started in 87.3229 ms
2021-12-23 13:48:16.006 -05:00 [DBG] Execution loop Worker:642a441b stopped in 88.8779 ms
2021-12-23 13:48:16.009 -05:00 [DBG] Execution loop Worker:50e592a0 has started in 91.8216 ms
2021-12-23 13:48:16.009 -05:00 [DBG] Execution loop Worker:50e592a0 stopped in 91.8739 ms
2021-12-23 13:48:16.014 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d all the dispatchers started
2021-12-23 13:48:16.014 -05:00 [DBG] Execution loop DelayedJobScheduler:2539bd3f has started in 10.2585 ms
2021-12-23 13:48:16.014 -05:00 [DBG] Execution loop DelayedJobScheduler:2539bd3f stopped in 10.3319 ms
2021-12-23 13:48:16.017 -05:00 [DBG] Execution loop RecurringJobScheduler:dfdfa40a has started in 4.7769 ms
2021-12-23 13:48:16.017 -05:00 [DBG] Execution loop RecurringJobScheduler:dfdfa40a stopped in 4.8079 ms
2021-12-23 13:48:16.021 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d All dispatchers stopped
2021-12-23 13:48:16.025 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d successfully reported itself as stopped in 2.7547 ms
2021-12-23 13:48:16.025 -05:00 [INF] Server desktop-2dfljpm:70276:c8f0680d has been stopped in total 199.2083 ms
2021-12-23 13:48:16.025 -05:00 [DBG] Execution loop BackgroundServerProcess:90579595 stopped in 199.2965 ms
2021-12-23 13:48:16.042 -05:00 [FTL] Host terminated unexpectedly!
Autofac.Core.DependencyResolutionException: An exception was thrown while activating HealthChecks.UI.Core.Data.HealthChecksDb.
 ---> Autofac.Core.DependencyResolutionException: An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.EntityFrameworkCore.DbContextOptions`1[HealthChecks.UI.Core.Data.HealthChecksDb])' on type 'HealthChecksDb'.
 ---> System.TypeLoadException: Method 'GetServiceProviderHashCode' in type 'ExtensionInfo' from assembly 'Microsoft.EntityFrameworkCore.InMemory, Version=5.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.
   at Microsoft.EntityFrameworkCore.InMemory.Infrastructure.Internal.InMemoryOptionsExtension.get_Info()
   at Microsoft.EntityFrameworkCore.DbContextOptions.GetHashCode()
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd[TArg](TKey key, Func`3 valueFactory, TArg factoryArgument)
   at Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions options, Boolean providerRequired)
   at Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions options)
   at lambda_method21(Closure , Object[] )
   at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate()
   --- End of inner exception stack trace ---
   at Autofac.Core.Activators.Reflection.BoundConstructor.Instantiate()
   at Autofac.Core.Activators.Reflection.ReflectionActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters)
   at Autofac.Core.Activators.Reflection.ReflectionActivator.<ConfigurePipeline>b__11_0(ResolveRequestContext ctxt, Action`1 next)
   at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   --- End of inner exception stack trace ---
   at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.<Execute>b__0()
   at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator)
   at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator)
   at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.<BuildPipeline>b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.&lt;&gt;c__DisplayClass14_0.&lt;BuildPipeline&gt;b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest request)
   at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest request)
   at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest request)
   at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest request)
   at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance)
   at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
   at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters)
   at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType)
   at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at HealthChecks.UI.Core.HostedService.UIInitializationHostedService.InitializeDatabase(IServiceProvider sp)
   at HealthChecks.UI.Core.HostedService.UIInitializationHostedService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at TiberVendor.Program.Main(String[] args) in C:\source\repos\_TiberVendor\VendorDatabase\aspnet-core\src\TiberVendor.HttpApi.Host\Program.cs:line 31
Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

36 Answer(s)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    HI

    Can you try use below packages of AspNetCore.HealthChecks.UI?

    <PackageReference Include="AspNetCore.HealthChecks.UI" Version="6.0.1-rc2.4" />
    <PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="6.0.1-rc2.4" />
    <PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="6.0.1-rc2.4" />
    
    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    When you say use. Are you referring to referring the package in one of the projects or something else?

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    it appears changing these worked. However, I am running into another upgrade issue.

    I have added this line of code to my HostApi.Host startup.cs

    app.UseHangfireDashboard("/hangfire",new DashboardOptions { AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: "hangfirePerm") } });

    When I try to access hangfire on /hangfire I get page can not be found error. log file entries are below.

    SELECT TOP(@__p_1) [a].[Id], [a].[ConcurrencyStamp], [a].[CreationTime], [a].[ExtraProperties], [a].[IsAbandoned], [a].[JobArgs], [a].[JobName], [a].[LastTryTime], [a].[NextTryTime], [a].[Priority], [a].[TryCount] FROM [AbpBackgroundJobs] AS [a] WHERE ([a].[IsAbandoned] = CAST(0 AS bit)) AND ([a].[NextTryTime] <= @__now_0) ORDER BY [a].[Priority] DESC, [a].[TryCount], [a].[NextTryTime] 2021-12-27 09:21:55.711 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2021-12-27 09:21:55.713 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 2.2855ms 2021-12-27 09:21:59.831 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'BackgroundJobsDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.0' with options: QuerySplittingBehavior=SplitQuery 2021-12-27 09:21:59.832 -05:00 [INF] Executed DbCommand (1ms) [Parameters=[@__p_1='?' (DbType = Int32), @__now_0='?' (DbType = DateTime2)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(@__p_1) [a].[Id], [a].[ConcurrencyStamp], [a].[CreationTime], [a].[ExtraProperties], [a].[IsAbandoned], [a].[JobArgs], [a].[JobName], [a].[LastTryTime], [a].[NextTryTime], [a].[Priority], [a].[TryCount] FROM [AbpBackgroundJobs] AS [a] WHERE ([a].[IsAbandoned] = CAST(0 AS bit)) AND ([a].[NextTryTime] <= @__now_0) ORDER BY [a].[Priority] DESC, [a].[TryCount], [a].[NextTryTime]

    If I change the code back to app.UseHangfireDashboard(); things appear to be working properly. What could be missing?

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi There are some changes: https://docs.abp.io/en/abp/5.0/Background-Jobs-Hangfire#abphangfireauthorizationfilter

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    I seen this and tried following it. When I define the parameters for using authorization the hangfire url stops working but not supplying parameters everything works

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please share the full code of your Startup class.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    All configuration is in the HttpApiHostModule.cs in the HttpApi.Host project

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.AspNetCore.Authentication.Google; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.MicrosoftAccount; using Microsoft.AspNetCore.Authentication.Twitter; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Caching.StackExchangeRedis; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using TiberVendor.EntityFrameworkCore; using TiberVendor.MultiTenancy; using StackExchange.Redis; using Microsoft.OpenApi.Models; using TiberVendor.HealthChecks; using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; using Volo.Abp.Caching; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Modularity; using Volo.Abp.Swashbuckle; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.VirtualFileSystem; using Volo.Abp.BackgroundJobs.Hangfire; using Hangfire; using Volo.Chat; using Volo.Abp.Hangfire; namespace TiberVendor { [DependsOn( typeof(TiberVendorHttpApiModule), typeof(AbpAutofacModule), typeof(AbpCachingStackExchangeRedisModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), typeof(AbpIdentityAspNetCoreModule), typeof(TiberVendorApplicationModule), typeof(TiberVendorEntityFrameworkCoreModule), typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpBackgroundJobsHangfireModule) )] [DependsOn(typeof(ChatSignalRModule))] public class TiberVendorHttpApiHostModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); var hostingEnvironment = context.Services.GetHostingEnvironment(); ConfigureUrls(configuration); ConfigureConventionalControllers(); ConfigureAuthentication(context, configuration); ConfigureSwagger(context, configuration); ConfigureCache(configuration); ConfigureVirtualFileSystem(context); ConfigureRedis(context, configuration, hostingEnvironment); ConfigureCors(context, configuration); ConfigureExternalProviders(context); ConfigureHealthChecks(context); ConfigureHangfire(context, configuration); } private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration) { context.Services.AddHangfire(config => { config.UseSqlServerStorage(configuration.GetConnectionString("Default")); }); } private void ConfigureHealthChecks(ServiceConfigurationContext context) { context.Services.AddTiberVendorHealthChecks(); } private void ConfigureUrls(IConfiguration configuration) { Configure<AppUrlOptions>(options => { options.Applications["Angular"].RootUrl = configuration["App:AngularUrl"]; options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password"; options.Applications["Angular"].Urls[AccountUrlNames.EmailConfirmation] = "account/email-confirmation"; }); } private void ConfigureCache(IConfiguration configuration) { Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "TiberVendor:"; }); } private void ConfigureVirtualFileSystem(ServiceConfigurationContext context) { var hostingEnvironment = context.Services.GetHostingEnvironment(); if (hostingEnvironment.IsDevelopment()) { Configure<AbpVirtualFileSystemOptions>(options => { options.FileSets.ReplaceEmbeddedByPhysical<TiberVendorDomainSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Domain.Shared", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical<TiberVendorDomainModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Domain", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical<TiberVendorApplicationContractsModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Application.Contracts", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical<TiberVendorApplicationModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Application", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical<TiberVendorHttpApiModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.HttpApi", Path.DirectorySeparatorChar))); }); } } private void ConfigureConventionalControllers() { Configure<AbpAspNetCoreMvcOptions>(options => { options.ConventionalControllers.Create(typeof(TiberVendorApplicationModule).Assembly); }); } private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) { context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.Authority = configuration["AuthServer:Authority"]; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]); options.Audience = "TiberVendor"; }); } private static void ConfigureSwagger(ServiceConfigurationContext context, IConfiguration configuration) { context.Services.AddAbpSwaggerGenWithOAuth( configuration["AuthServer:Authority"], new Dictionary<string, string> { {"TiberVendor", "TiberVendor API"} }, options => { options.SwaggerDoc("v1", new OpenApiInfo {Title = "TiberVendor API", Version = "v1"}); options.DocInclusionPredicate((docName, description) => true); options.CustomSchemaIds(type => type.FullName); }); } private void ConfigureRedis( ServiceConfigurationContext context, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); context.Services .AddDataProtection() .PersistKeysToStackExchangeRedis(redis, "TiberVendor-Protection-Keys"); } } private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration) { context.Services.AddCors(options => { options.AddDefaultPolicy(builder => { builder .WithOrigins( configuration["App:CorsOrigins"] .Split(",", StringSplitOptions.RemoveEmptyEntries) .Select(o => o.Trim().RemovePostFix("/")) .ToArray() ) .WithAbpExposedHeaders() .SetIsOriginAllowedToAllowWildcardSubdomains() .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); }); }); } private void ConfigureExternalProviders(ServiceConfigurationContext context) { context.Services .AddDynamicExternalLoginProviderOptions<GoogleOptions>( GoogleDefaults.AuthenticationScheme, options => { options.WithProperty(x => x.ClientId); options.WithProperty(x => x.ClientSecret, isSecret: true); } ) .AddDynamicExternalLoginProviderOptions<MicrosoftAccountOptions>( MicrosoftAccountDefaults.AuthenticationScheme, options => { options.WithProperty(x => x.ClientId); options.WithProperty(x => x.ClientSecret, isSecret: true); } ) .AddDynamicExternalLoginProviderOptions<TwitterOptions>( TwitterDefaults.AuthenticationScheme, options => { options.WithProperty(x => x.ConsumerKey); options.WithProperty(x => x.ConsumerSecret, isSecret: true); } ); } public override void OnApplicationInitialization(ApplicationInitializationContext context) { var app = context.GetApplicationBuilder(); var env = context.GetEnvironment(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseAbpRequestLocalization(); if (!env.IsDevelopment()) { app.UseErrorPage(); } app.UseStaticFiles(); app.UseRouting(); app.UseCors(); app.UseAuthentication(); if (MultiTenancyConsts.IsEnabled) { app.UseMultiTenancy(); } app.UseAuthorization(); app.UseSwagger(); app.UseAbpSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "TiberVendor API"); var configuration = context.GetConfiguration(); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); }); app.UseAuditing(); app.UseAbpSerilogEnrichers(); app.UseUnitOfWork(); app.UseConfiguredEndpoints(); app.UseHangfireDashboard(); //app.UseHangfireDashboard("/hangfire",new DashboardOptions //{ // AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: "hangfirePerm") } //}); } } }

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    How about this?

    UseHangfireDashboard can't be next of UseConfiguredEndpoints.

    app.UseAuthentication();
    if (MultiTenancyConsts.IsEnabled)
    {
        app.UseMultiTenancy();
    }
    app.UseAuthorization();
    
    app.UseHangfireDashboard();
    //app.UseHangfireDashboard("/hangfire",new DashboardOptions
    //{
    // AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: "hangfirePerm") }
    //});
    
    app.UseSwagger();
    app.UseAbpSwaggerUI(options =>
    {
        options.SwaggerEndpoint("/swagger/v1/swagger.json", "TiberVendor API");
        var configuration = context.GetConfiguration();
        options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
        options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]);
    });
    ``
    
    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    So I tried this and I am getting 401 error on the /hangfire url

    here is the log

    2021-12-27 20:48:33.611 -05:00 [DBG] Added 0 entity changes to the current audit log 2021-12-27 20:48:33.612 -05:00 [INF] Executed endpoint 'Health checks' 2021-12-27 20:48:33.612 -05:00 [DBG] Added 0 entity changes to the current audit log 2021-12-27 20:48:33.612 -05:00 [INF] Received HTTP response headers after 14.962ms - 200 2021-12-27 20:48:33.612 -05:00 [INF] End processing HTTP request after 15.1008ms - 200 2021-12-27 20:48:33.612 -05:00 [INF] Request finished HTTP/1.1 GET https://localhost:44350/health-status - - - 200 - application/json 11.1714ms 2021-12-27 20:48:33.620 -05:00 [DBG] HealthReportCollector - health report execution history saved. 2021-12-27 20:48:33.620 -05:00 [DBG] HealthReport history already exists and is in the same state, updating the values. 2021-12-27 20:48:33.623 -05:00 [INF] Saved 2 entities to in-memory store. 2021-12-27 20:48:33.623 -05:00 [DBG] HealthReportCollector has completed. 2021-12-27 20:48:33.623 -05:00 [DBG] HealthCheck collector HostedService executed successfully. 2021-12-27 20:48:35.727 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2021-12-27 20:48:35.752 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 24.8275ms 2021-12-27 20:48:38.551 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'BackgroundJobsDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.0' with options: QuerySplittingBehavior=SplitQuery 2021-12-27 20:48:38.553 -05:00 [INF] Executed DbCommand (2ms) [Parameters=[@__p_1='?' (DbType = Int32), @__now_0='?' (DbType = DateTime2)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(@__p_1) [a].[Id], [a].[ConcurrencyStamp], [a].[CreationTime], [a].[ExtraProperties], [a].[IsAbandoned], [a].[JobArgs], [a].[JobName], [a].[LastTryTime], [a].[NextTryTime], [a].[Priority], [a].[TryCount] FROM [AbpBackgroundJobs] AS [a] WHERE ([a].[IsAbandoned] = CAST(0 AS bit)) AND ([a].[NextTryTime] <= @__now_0) ORDER BY [a].[Priority] DESC, [a].[TryCount], [a].[NextTryTime]

    Here is my code

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using Microsoft.AspNetCore.Authentication.Google; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.MicrosoftAccount; using Microsoft.AspNetCore.Authentication.Twitter; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Caching.StackExchangeRedis; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using TiberVendor.EntityFrameworkCore; using TiberVendor.MultiTenancy; using StackExchange.Redis; using Microsoft.OpenApi.Models; using TiberVendor.HealthChecks; using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; using Volo.Abp.Caching; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Modularity; using Volo.Abp.Swashbuckle; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.VirtualFileSystem; using Volo.Abp.BackgroundJobs.Hangfire; using Hangfire; using Volo.Chat; using Volo.Abp.Hangfire;

    namespace TiberVendor { [DependsOn( typeof(TiberVendorHttpApiModule), typeof(AbpAutofacModule), typeof(AbpCachingStackExchangeRedisModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), typeof(AbpIdentityAspNetCoreModule), typeof(TiberVendorApplicationModule), typeof(TiberVendorEntityFrameworkCoreModule), typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpBackgroundJobsHangfireModule) )] [DependsOn(typeof(ChatSignalRModule))] public class TiberVendorHttpApiHostModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); var hostingEnvironment = context.Services.GetHostingEnvironment();

            ConfigureUrls(configuration);
            ConfigureConventionalControllers();
            ConfigureAuthentication(context, configuration);
            ConfigureSwagger(context, configuration);
            ConfigureCache(configuration);
            ConfigureVirtualFileSystem(context);
            ConfigureRedis(context, configuration, hostingEnvironment);
            ConfigureCors(context, configuration);
            ConfigureExternalProviders(context);
            ConfigureHealthChecks(context);
            ConfigureHangfire(context, configuration);
        }
    
        private void ConfigureHangfire(ServiceConfigurationContext context, IConfiguration configuration)
        {
            context.Services.AddHangfire(config =&gt;
            {
                config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
            });
        }
    
        private void ConfigureHealthChecks(ServiceConfigurationContext context)
        {
            context.Services.AddTiberVendorHealthChecks();
        }
    
        private void ConfigureUrls(IConfiguration configuration)
        {
            Configure&lt;AppUrlOptions&gt;(options =>
            {
                options.Applications["Angular"].RootUrl = configuration["App:AngularUrl"];
                options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password";
                options.Applications["Angular"].Urls[AccountUrlNames.EmailConfirmation] = "account/email-confirmation";
            });
        }
    
        private void ConfigureCache(IConfiguration configuration)
        {
            Configure&lt;AbpDistributedCacheOptions&gt;(options =>
            {
                options.KeyPrefix = "TiberVendor:";
            });
        }
    
        private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
        {
            var hostingEnvironment = context.Services.GetHostingEnvironment();
    
            if (hostingEnvironment.IsDevelopment())
            {
                Configure&lt;AbpVirtualFileSystemOptions&gt;(options =>
                {
                    options.FileSets.ReplaceEmbeddedByPhysical&lt;TiberVendorDomainSharedModule&gt;(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Domain.Shared", Path.DirectorySeparatorChar)));
                    options.FileSets.ReplaceEmbeddedByPhysical&lt;TiberVendorDomainModule&gt;(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Domain", Path.DirectorySeparatorChar)));
                    options.FileSets.ReplaceEmbeddedByPhysical&lt;TiberVendorApplicationContractsModule&gt;(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Application.Contracts", Path.DirectorySeparatorChar)));
                    options.FileSets.ReplaceEmbeddedByPhysical&lt;TiberVendorApplicationModule&gt;(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.Application", Path.DirectorySeparatorChar)));
                    options.FileSets.ReplaceEmbeddedByPhysical&lt;TiberVendorHttpApiModule&gt;(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}TiberVendor.HttpApi", Path.DirectorySeparatorChar)));
                });
            }
        }
    
        private void ConfigureConventionalControllers()
        {
            Configure&lt;AbpAspNetCoreMvcOptions&gt;(options =>
            {
                options.ConventionalControllers.Create(typeof(TiberVendorApplicationModule).Assembly);
            });
        }
    
        private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
        {
            context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(options =>
                {
                    options.Authority = configuration["AuthServer:Authority"];
                    options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
                    options.Audience = "TiberVendor";
                });
        }
    
        private static void ConfigureSwagger(ServiceConfigurationContext context, IConfiguration configuration)
        {
            context.Services.AddAbpSwaggerGenWithOAuth(
                configuration["AuthServer:Authority"],
                new Dictionary&lt;string, string&gt;
                {
                    {"TiberVendor", "TiberVendor API"}
                },
                options =>
                {
                    options.SwaggerDoc("v1", new OpenApiInfo {Title = "TiberVendor API", Version = "v1"});
                    options.DocInclusionPredicate((docName, description) => true);
                    options.CustomSchemaIds(type => type.FullName);
                });
        }
    
        private void ConfigureRedis(
            ServiceConfigurationContext context,
            IConfiguration configuration,
            IWebHostEnvironment hostingEnvironment)
        {
            if (!hostingEnvironment.IsDevelopment())
            {
                var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
                context.Services
                    .AddDataProtection()
                    .PersistKeysToStackExchangeRedis(redis, "TiberVendor-Protection-Keys");
            }
        }
    
        private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration)
        {
            context.Services.AddCors(options =>
            {
                options.AddDefaultPolicy(builder =>
                {
                    builder
                        .WithOrigins(
                            configuration["App:CorsOrigins"]
                                .Split(",", StringSplitOptions.RemoveEmptyEntries)
                                .Select(o => o.Trim().RemovePostFix("/"))
                                .ToArray()
                        )
                        .WithAbpExposedHeaders()
                        .SetIsOriginAllowedToAllowWildcardSubdomains()
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                });
            });
        }
    
        private void ConfigureExternalProviders(ServiceConfigurationContext context)
        {
            context.Services
                .AddDynamicExternalLoginProviderOptions&lt;GoogleOptions&gt;(
                    GoogleDefaults.AuthenticationScheme,
                    options =>
                    {
                        options.WithProperty(x => x.ClientId);
                        options.WithProperty(x => x.ClientSecret, isSecret: true);
                    }
                )
                .AddDynamicExternalLoginProviderOptions&lt;MicrosoftAccountOptions&gt;(
                    MicrosoftAccountDefaults.AuthenticationScheme,
                    options =>
                    {
                        options.WithProperty(x => x.ClientId);
                        options.WithProperty(x => x.ClientSecret, isSecret: true);
                    }
                )
                .AddDynamicExternalLoginProviderOptions&lt;TwitterOptions&gt;(
                    TwitterDefaults.AuthenticationScheme,
                    options =>
                    {
                        options.WithProperty(x => x.ConsumerKey);
                        options.WithProperty(x => x.ConsumerSecret, isSecret: true);
                    }
                );
        }
    
        public override void OnApplicationInitialization(ApplicationInitializationContext context)
        {
            var app = context.GetApplicationBuilder();
            var env = context.GetEnvironment();
    
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
    
            app.UseAbpRequestLocalization();
    
            if (!env.IsDevelopment())
            {
                app.UseErrorPage();
            }
    
            app.UseStaticFiles();
            app.UseRouting();
            app.UseCors();
            app.UseAuthentication();
            
            if (MultiTenancyConsts.IsEnabled)
            {
                app.UseMultiTenancy();
            }
    
            app.UseAuthorization();
            app.UseHangfireDashboard("/hangfire", new DashboardOptions
            {
                AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: "hangfirePerm") }
            });
    
            app.UseSwagger();
            app.UseAbpSwaggerUI(options =>
            {
               options.SwaggerEndpoint("/swagger/v1/swagger.json", "TiberVendor API");
    
               var configuration = context.GetConfiguration();
               options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]);
               options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]);
            });
            app.UseAuditing();
            app.UseAbpSerilogEnrichers();
            app.UseUnitOfWork();
            app.UseConfiguredEndpoints();
            //app.UseHangfireDashboard();
            
        }
    }
    

    }

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Copy the code and debug it.

    https://github.com/abpframework/abp/blob/rel-5.0/framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    So I copied the code over and debugged. It appears that the issue is in the IsLoggedIn. It continues to return false. I have validated that in the Angular App I am logged in and I have tried to authenticate via Swagger. Regardless of what I do it always returns false. Should I be authenticating in a different way?

    private static bool IsLoggedIn(DashboardContext context, bool enableTenant) { var currentUser = context.GetHttpContext().RequestServices.GetRequiredService<ICurrentUser>();

            if (!enableTenant)
            {
                return currentUser.IsAuthenticated && !currentUser.TenantId.HasValue;
            }
    
            return currentUser.IsAuthenticated;
        }
    
    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi Rrader30

    It seems we need to sign in to the API website. I will create a demo.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    https://github.com/abpframework/abp/commit/cf28da1466877f4727f96277924416d4ec7fa9b2

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    I tried coping the code and I seem to still have an issue. How should we authenticate to get this to work?

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    What's the issue? Please share the details.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    I am still getting the 401 error. I tried logging into the angular frontend and also authenticating within swagger

    2021-12-30 10:36:25.141 -05:00 [DBG] HealthReportCollector has completed. 2021-12-30 10:36:25.141 -05:00 [DBG] HealthCheck collector HostedService executed successfully. 2021-12-30 10:36:29.735 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2021-12-30 10:36:29.759 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 23.9740ms 2021-12-30 10:36:29.865 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2021-12-30 10:36:29.868 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 2.4635ms

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Login on https://localhost:44350/home/login

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    When I try I am getting

    500 Internal Server Error UNAUTHORIZED_CLIENT Unknown client or client not enabled

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    You should create a new client.

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    So I created the client

    When I navigate to https://localhost:44365/home/login

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Can you clear the Redis and re-try?

    If it still not working, Please share the details info that exist in the logs.txt

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Dicky.tech@gmail.com created

    Hi,

    Am also getting the same error with Blazor. After I publish on iis it works.

    <br>

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Thanks @Dicky.tech

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
  • User Avatar
    0
    Rrader30 created

    Here is the log for Host.API

    2022-01-04 07:59:05.244 -05:00 [DBG] Added 0 entity changes to the current audit log 2022-01-04 07:59:05.245 -05:00 [INF] Executed endpoint 'Health checks' 2022-01-04 07:59:05.245 -05:00 [DBG] Added 0 entity changes to the current audit log 2022-01-04 07:59:05.245 -05:00 [INF] Received HTTP response headers after 55.7843ms - 200 2022-01-04 07:59:05.245 -05:00 [INF] End processing HTTP request after 55.8595ms - 200 2022-01-04 07:59:05.246 -05:00 [INF] Request finished HTTP/1.1 GET https://localhost:44350/health-status - - - 200 - application/json 51.4686ms 2022-01-04 07:59:05.247 -05:00 [DBG] HealthReportCollector - health report execution history saved. 2022-01-04 07:59:05.247 -05:00 [DBG] HealthReport history already exists and is in the same state, updating the values. 2022-01-04 07:59:05.247 -05:00 [INF] Saved 2 entities to in-memory store. 2022-01-04 07:59:05.248 -05:00 [DBG] HealthReportCollector has completed. 2022-01-04 07:59:05.248 -05:00 [DBG] HealthCheck collector HostedService executed successfully. 2022-01-04 07:59:05.329 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'BackgroundJobsDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.0' with options: QuerySplittingBehavior=SplitQuery 2022-01-04 07:59:05.800 -05:00 [INF] Executed DbCommand (471ms) [Parameters=[@__p_1='?' (DbType = Int32), @__now_0='?' (DbType = DateTime2)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(@__p_1) [a].[Id], [a].[ConcurrencyStamp], [a].[CreationTime], [a].[ExtraProperties], [a].[IsAbandoned], [a].[JobArgs], [a].[JobName], [a].[LastTryTime], [a].[NextTryTime], [a].[Priority], [a].[TryCount] FROM [AbpBackgroundJobs] AS [a] WHERE ([a].[IsAbandoned] = CAST(0 AS bit)) AND ([a].[NextTryTime] <= @__now_0) ORDER BY [a].[Priority] DESC, [a].[TryCount], [a].[NextTryTime] 2022-01-04 07:59:10.811 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'BackgroundJobsDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.0' with options: QuerySplittingBehavior=SplitQuery 2022-01-04 07:59:11.015 -05:00 [INF] Executed DbCommand (203ms) [Parameters=[@__p_1='?' (DbType = Int32), @__now_0='?' (DbType = DateTime2)], CommandType='"Text"', CommandTimeout='30'] SELECT TOP(@__p_1) [a].[Id], [a].[ConcurrencyStamp], [a].[CreationTime], [a].[ExtraProperties], [a].[IsAbandoned], [a].[JobArgs], [a].[JobName], [a].[LastTryTime], [a].[NextTryTime], [a].[Priority], [a].[TryCount] FROM [AbpBackgroundJobs] AS [a] WHERE ([a].[IsAbandoned] = CAST(0 AS bit)) AND ([a].[NextTryTime] <= @__now_0) ORDER BY [a].[Priority] DESC, [a].[TryCount], [a].[NextTryTime] 2022-01-04 07:59:13.215 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2022-01-04 07:59:13.241 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 26.1707ms 2022-01-04 07:59:13.816 -05:00 [INF] Request starting HTTP/2 GET https://localhost:44350/hangfire - - 2022-01-04 07:59:13.818 -05:00 [INF] Request finished HTTP/2 GET https://localhost:44350/hangfire - - - 401 - - 2.4026ms 2022-01-04 07:59:15.252 -05:00 [DBG] Executing HealthCheck collector HostedService. 2022-01-04 07:59:15.253 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'HealthChecksDb' using provider 'Microsoft.EntityFrameworkCore.InMemory:6.0.0' with options: StoreName=HealthChecksUI 2022-01-04 07:59:15.253 -05:00 [INF] Start processing HTTP request GET "https://localhost:44350/health-status" 2022-01-04 07:59:15.253 -05:00 [INF] Sending HTTP request GET "https://localhost:44350/health-status" 2022-01-04 07:59:15.254 -05:00 [INF] Request starting HTTP/1.1 GET https://localhost:44350/health-status - - 2022-01-04 07:59:15.256 -05:00 [INF] Executing endpoint 'Health checks' 2022-01-04 07:59:15.258 -05:00 [INF] Entity Framework Core 6.0.1 initialized 'TiberVendorDbContext' using provider 'Microsoft.EntityFrameworkCore.SqlServer:6.0.0' with options: QuerySplittingBehavior=SplitQuery 2022-01-04 07:59:15.874 -05:00 [INF] Executed DbCommand (614ms) [Parameters=[@__ef_filter__p_0='?' (DbType = Boolean), @__p_0='?' (DbType = Int32), @__p_1='?' (DbType = Int32)], CommandType='"Text"', CommandTimeout='30'] SELECT [a].[Id], [a].[ConcurrencyStamp], [a].[ExtraProperties], [a].[IsDefault], [a].[IsPublic], [a].[IsStatic], [a].[Name], [a].[NormalizedName], [a].[TenantId] FROM [AbpRoles] AS [a] WHERE (@__ef_filter__p_0 = CAST(1 AS bit)) OR [a].[TenantId] IS NULL ORDER BY [a].[Id] OFFSET @__p_0 ROWS FETCH NEXT @__p_1 ROWS ONLY

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
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.8.0-preview. Updated on September 09, 2026, 11:56
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.