Showing posts with label Dashboard. Show all posts
Showing posts with label Dashboard. Show all posts

Saturday, August 22, 2020

Host Hangfire Dashboard with Windows Services without OWIN

 1. Add Startup class to the Windows Service project as below:


using Hangfire;

using Hangfire.Dashboard;

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.DependencyInjection;


public class Startup  {

        public IConfiguration Configuration { get; }

        public Startup(IConfiguration configuration) {

            Configuration = configuration;

        }

         public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {

            app.UseHangfireDashboard();

        }

         public void ConfigureServices(IServiceCollection services) {

            services.AddHangfire(configuration => configuration

              .UseSqlServerStorage(

                    Configuration.GetConnectionString("DatabaseConnectionString")

            ));

         }

    }


2. Add/ Modify program class as below:


using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Reflection;

using Hangfire;

using Microsoft.AspNetCore.Hosting;

using Microsoft.AspNetCore.Server.HttpSys;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Hosting;


public class Program {

        public static void Main(string[] args) {

            CreateHostBuilder(args).Build().Run();

        }

         public static IHostBuilder CreateHostBuilder(string[] args) =>

            Host.CreateDefaultBuilder(args)

                .ConfigureServices((hostContext, services) =>    {

                    GlobalConfiguration.Configuration

                                       .UseSqlServerStorage(hostContext.Configuration

                                       .GetConnectionString("DbConnectionString"))

                                       .UseConsole();

                })

                .UseWindowsService()

                .ConfigureWebHostDefaults(webBuilder =>    {

                    webBuilder.UseHttpSys(options =>   {

                             options.Authentication.AllowAnonymous = false;

                             options.Authentication.Schemes = AuthenticationSchemes.NTLM;

                         })

                            .UseStartup<Startup>();

                });

}


3. Run the Windows service project and access the Hangfire dashboard page from the browser through the below default URL:

http://localhost:5000/hangfire