当没有部署在根HangfireUI错误的网址(HangfireUI wrong URLs when

2019-10-30 13:16发布

在已经部署了我们的应用程序,其中包括迟发型UI,在客户environement我们注意到迟发型UI不能正常工作。 后端,这也暴露了迟发型UI用于测试目的的URL是https://开头 /服务/应用程序的API 。

我们注册迟发型UI有:

    public static void UseHangfireDashboard(this IAppBuilder app, bool enableForLocalhost, string enabledAppRoleNames)
    {
        var authorizationFilters = new List<IDashboardAuthorizationFilter>();
        if (enableForLocalhost)
        {
            authorizationFilters.Add(new LocalRequestsOnlyAuthorizationFilter());
        }

        if (!string.IsNullOrWhiteSpace(enabledAppRoleNames))
        {
            string[] authorizedRoleNames = enabledAppRoleNames.Split(new[] { ROLES_SEPARATOR }, StringSplitOptions.RemoveEmptyEntries)
                .Select(appRole => appRole.Trim())
                .ToArray();
            authorizationFilters.Add(new HangfireDashboardAuthorizeByAppRoleNamesFilter(authorizedRoleNames));
        }

        app.UseHangfireDashboard("/hangfire", new DashboardOptions { Authorization = authorizationFilters });
    }

因此迟发型UI进行访问的https://开头 /服务/应用程序的API /迟发型

但它无法加载所需的CSS和JS文件,因为它试图从让他们https://开头 /迟发型/ ...所有的链接被打破,因为同样的原因也是如此。

我一直无法弄清楚如何告诉迟发型使用正确的URL。

我检查了以下链接:
https://discuss.hangfire.io/t/dashboard-url-issues-when-deployed-below-site-root/598 http://source.technology/hangfire-authentication
- VirtualPathUtility.ToAbsolute(VirtualPathUtility.ToAbsolute(“〜/迟发型”))信息:System.Web.HttpException:“应用程序相对虚拟路径‘〜/迟发型’不能进行绝对的,因为对应用程序的路径是不知道”。
-当试图设置用于测试目的的绝对路径(app.UseHangfireDashboard( "http://<absolutePath>/hangfire", new DashboardOptions { Authorization = authorizationFilters }我得到System.ArgumentException:“路径必须先从” /“后跟一个或多个字符。”

文章来源: HangfireUI wrong URLs when not deployed on root