- 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.<>c__DisplayClass14_0.<BuildPipeline>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.<>c__DisplayClass14_0.<BuildPipeline>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.<>c__DisplayClass14_0.<BuildPipeline>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
36 Answer(s)
-
0
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" />
-
0
When you say use. Are you referring to referring the package in one of the projects or something else?
-
0
-
0
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?
-
0
hi There are some changes: https://docs.abp.io/en/abp/5.0/Background-Jobs-Hangfire#abphangfireauthorizationfilter
-
0
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
-
0
hi
Please share the full code of your Startup class.
-
0
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") } //}); } } }
-
0
How about this?
UseHangfireDashboard
can't be next ofUseConfiguredEndpoints
.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"]); }); ``
-
0
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 => { 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.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(); } }
}
-
0
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
-
0
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; }
-
0
hi Rrader30
It seems we need to sign in to the API website. I will create a demo.
-
0
hi
https://github.com/abpframework/abp/commit/cf28da1466877f4727f96277924416d4ec7fa9b2
-
0
I tried coping the code and I seem to still have an issue. How should we authenticate to get this to work?
-
0
What's the issue? Please share the details.
-
0
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
-
0
Login on
https://localhost:44350/home/login
-
0
When I try I am getting
500 Internal Server Error UNAUTHORIZED_CLIENT Unknown client or client not enabled
-
0
-
0
-
0
Can you clear the Redis and re-try?
If it still not working, Please share the details info that exist in the logs.txt
-
0
Hi,
Am also getting the same error with Blazor. After I publish on iis it works.
<br>
-
0
Thanks @Dicky.tech
-
0
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