首页 > 解决方案 > Hangfire仪表板链接指向错误的路线

问题描述

问题是,当应用程序部署到非根上下文时(即http://root/someAppName/仪表板默认可在 处访问http://root/someAppName/hangfire)。但是仪表板缺少任何 js 和 css,因为它们是从错误的位置下载的。链接也会出现同样的问题(位置错误)。他们都指向http://root/someLinkName跳过/someAppName上下文的一部分。我正在使用 ASP.NET Core 2.2。

此处发现了类似的问题,但尚未解决,此外,它不涉及 ASP.NET Core。如何正确设置我的应用程序以缓解此问题?该应用程序无法部署到根上下文,需要保留在/someAppName.

标签: asp.net-coreroutinghangfire

解决方案


当带有 Hangfire 的 ASP.NET Core 应用程序部署在网关或负载平衡器后面时,这是一个已知问题。请参阅thisthisthis以供参考。解决方法是配置网关(负载均衡器)以传递X-Forwarded-PathBase给应用程序并在之前添加以下中间件app.UseHangfireDashboard()

app.Use((context, next) =>
{
    var pathBase = context.Request.Headers["X-Forwarded-PathBase"];
    if (pathBase != null)
        context.Request.PathBase = new PathString(pathBase);
    return next();
});

app.UseHangfireDashboard();

推荐阅读