AspNetCore.Proxy 重用连接错误信息

AspNetCore.Proxy reuse connection error message

我使用 AspNetCore.Proxy 来处理对 SSRS(报表服务)的请求

应用程序 -> 代理(应用程序内部)-> SSRS

可以从外部网络访问该应用程序。 只能从内部网络 (HTTP) 访问 SSRS

在 HTTP (80) 上发布应用程序时,不会发生任何问题或错误。 但是,当应用程序在 HTTPS (443) 上发布时 - 发生重用连接错误。 SSRS 在 HTTP (80)

上使用自己的内部 Web 门户

Request could not be proxied. Authentication failed because the connection could not be reused.

那么,如何解决这个错误?

应用程序代理配置:

            app.UseProxies(proxies =>
            {
                var url = (string)null;
                proxies.Map(
                    "ReportServer.aspx",
                    proxy => proxy.UseHttp((context, args) =>
                    {
                        url = $"{_reportSettings.SSRSReportServerBaseUrl}/ReportServer/Pages/ReportViewer.aspx" + context.Request.QueryString;
                        _logger.WriteWithCallerName(LogLevel.Debug, "Startup::Proxy", url);
                        return url;
                    },
                    builder => builder.WithHttpClientName(HTTP_CLIENT_NAME))
                    );
                proxies.Map(
                    _reportSettings.SSRSProxyRouteBase,
                    proxy => proxy.UseHttp((context, args) =>
                    {
                        url = $"{_reportSettings.SSRSReportServerBaseUrl}/ReportServer/Pages/ReportViewer.aspx" + context.Request.QueryString;
                        _logger.WriteWithCallerName(LogLevel.Debug, "Startup::Proxy", url);
                        return url;
                    },
                    builder => builder.WithHttpClientName(HTTP_CLIENT_NAME))
                    );
                proxies.Map(
                    _reportSettings.SSRSProxyRouteBase + "/{**rest}",
                    proxy => proxy.UseHttp((context, args) =>
                    {
                        url = $"{_reportSettings.SSRSReportServerBaseUrl}/ReportServer/" + args["rest"] + context.Request.QueryString;
                        _logger.WriteWithCallerName(LogLevel.Debug, "Startup::Proxy", url);
                        return url;
                    },
                    builder => builder.WithHttpClientName(HTTP_CLIENT_NAME))
                    );

            });

来自设置的参数:

    "SSRSReportServerBaseUrl": "http://172.16.1.40",
    "SSRSProxyRouteBase": "ReportServer",

我终于有了可行的解决方案。 代理库 github 页面

中描述的详细信息

Reuse connection issue