Вы создали два разных класса: один для HangfireSample
(необходим для панели управления) и один для Main
(Консоль). Проблема, которую я вижу, заключается в том, что у вас нигде в вашем классе Main
нет вызова HangfireSample
.
Я создал образец HangfireProject (. Net Framework с Hangfire 1.7.11 / MS SQL) и успешно настроил и запустил приборную панель с использованием WebApp.Start<Dashboard>(options)
. Эта строка фактически запускает вашу панель управления Hangfire.
Dashboard.cs
using Hangfire;
using HangfireProject;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Dashboard))]
namespace HangfireProject
{
public class Dashboard
{
public void Configuration(IAppBuilder app)
{
//app.UseHangfireServer();
app.UseHangfireDashboard();
}
}
}
Main Class
using Hangfire;
using Hangfire.SqlServer;
using Microsoft.Owin.Hosting;
using System;
using System.Collections.Generic;
namespace HangfireProject
{
class Program
{
static void Main(string[] args)
{
GlobalConfiguration.Configuration
.UseSqlServerStorage("Server=localhost;Database=HangfireDB;User Id=localAccount;Password=password;", new SqlServerStorageOptions
{
CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
QueuePollInterval = TimeSpan.Zero,
UseRecommendedIsolationLevel = true,
DisableGlobalLocks = true
});
StartOptions options = new StartOptions();
options.Urls.Add($"http://localhost:9095");
options.Urls.Add($"http://127.0.0.1:9095");
WebApp.Start<Dashboard>(options);
using (var server = new BackgroundJobServer())
{
System.Console.WriteLine("Hangfire Server started. Press any key to exit...");
System.Console.ReadKey();
}
}
}
}
Чтобы иметь возможность запускать WebApp.Start<>
, вам также необходимо установить пакет Microsoft.Owin.Host.HttpListener
Nuget. Убедитесь, что вы запускаете этот проект с правами администратора, так как ему требуется доступ для создания URL-адресов