我们正在尝试将 hangfire 与 LocalRequestsOnlyAuthorizationFilter 一起使用。我们已将应用程序部署到 IIS。当尝试从部署 IIS 的同一台机器访问 hangfire 仪表板时,我们在 hangfire 仪表板 URL“/jobs”上得到 401。只要请求来自部署hangfire的同一台机器,我们在这里要做的就是允许查看仪表板。下面是我们在 startup.cs 文件上的配置
public void Configure(IApplicationBuilder app, IBackgroundJobClient backgroundJobs, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseHangfireDashboard("/jobs", new DashboardOptions()
{
Authorization = new[] { new LocalRequestsOnlyAuthorizationFilter() }
});
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapHangfireDashboard();
});
backgroundJobs.Enqueue(() => Console.WriteLine("Hello world from Hangfire!"));
}
我们检查了远程和本地 ip,两者都相同。我们在这里还缺少什么吗?只是为了确保应用程序是否在 IIS 上运行,我们添加了另一个页面并且该页面工作正常。