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.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.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.b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.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.b__1(ResolveRequestContext ctxt)
   at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.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)
  • 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" />
    
  • User Avatar
    0
    Rrader30 created

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

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    image.png

  • 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?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer
  • 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

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    Please share the full code of your Startup class.

  • 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") }
    //});
    }
    }
    }

  • 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"]);
    });
    ``
    
  • 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 =>
            {
                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();
            
        }
    }
    

    }

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer
  • 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;
        }
    
  • 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.

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer
  • 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?

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    What's the issue? Please share the details.

  • 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

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

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

  • User Avatar
    0
    Rrader30 created

    When I try I am getting

    500
    Internal Server Error
    UNAUTHORIZED_CLIENT
    Unknown client or client not enabled

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    You should create a new client.

    image.png

  • User Avatar
    0
    Rrader30 created

    So I created the client

    image.png

    image.png

    image.png

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

    image.png

  • 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

  • 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>

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Thanks @Dicky.tech

  • 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

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