hangfire在linux下运行的必要条件(两个重要配置)

570 阅读1分钟

运行环境

  • 1 centos7
  • 2 net core 3.1

1 安装sdk

# sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# sudo yum install dotnet-sdk-3.1
# sudo yum install aspnetcore-runtime-3.1

2 两个重要配置

  • 2.1 需要手动添加useUrls,如果不添加, 则外部机器不能访问5000端口
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
    webBuilder.UseStartup<Startup>()
        .UseUrls("http://*:5000;https://*:5001");
});
  • 2.2 发布后,无法显示Dashboard页面, 这是因为没有授权, 返回的错误代码为401
  • 2.2.1 增加授权配置类, 继承Dashboard接口
public class CustomerHangfireDashboardFilter : IDashboardAuthorizationFilter
{
    bool IDashboardAuthorizationFilter.Authorize(DashboardContext context)
    {
        return true;
    }
}
  • 2.2.2 配置授权方法, 至此, 已经配置完成.
//增加授权,以适应linux
app.UseHangfireDashboard("/hangfire", new DashboardOptions
{
    //hangfire 身份验证过滤器
    Authorization = new[] { new CustomerHangfireDashboardFilter() },
});

2 将net core app打包,选择发布到文件夹

image.png

3 将发布后的文件上传到linux, sftp,ftp都可以

4 运行,启动, 就是这么简单

dotnet ***.dll