【问题标题】:SSRS 2016 Reports Virtual folder is not accessible from outside the server (with the bunch of 400 "bad request" errors for some internal requests)SSRS 2016 Reports 无法从服务器外部访问虚拟文件夹(对于某些内部请求,有一堆 400“错误请求”错误)
【发布时间】:2017-10-12 11:11:33
【问题描述】:

我无法从服务器外部访问 SSRS 2016“报告”虚拟文件夹。

位于 AWS 云服务器中的服务器,为了使用 RDP 访问它,我们(在 BI 部门)使用服务器名称“xxx-test-xxx.eu-central-1.elb.amazonaws.com”。 我在那个主题上并不强,但据我了解 - 这是 AWS 端负载均衡器的 URL 地址 (FQDN),稍后会转发到某个 IP 地址,该地址可以定期更改。

因此,在服务器上已经成功配置了 MS SQL Server 2016 和 SSRS(在本机模式下)。如果使用 URL http(://)127.0.0.1/reports、http(://)SQL_INSTANCE_NAME/Reports 甚至 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws,一切都在内部工作.com/Reports(为此目标已将“127.0.0.1 localhost xxx-test-xxx.eu-central-1.elb.amazonaws.com”行添加到 Windows“主机”文件中)。

现在我正在尝试从服务器外部访问 SSRS 门户(还没有任何 SSL 证书,只是通过 HTTPS):

  • 服务器的主要 IIS Web 应用程序使用 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com 成功打开(我必须在登录窗口)
  • ReportServer 虚拟文件夹使用 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer 成功打开(我必须在登录窗口中从服务器输入我的 AD 凭据)
  • 但是当我尝试通过 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/Reports 打开报告虚拟文件夹时 - 输入我的 AD 凭据后,我看到损坏或未加载页面。 有时是timeout_text,有时我什至看到页面标题损坏damaged_headers。

尝试了很多事情,但没有任何帮助: - 在服务器上的防火墙中为入站和出站连接打开 80 端口 - 在注册表中禁用 DisableLoopbackCheck - 将 xxx-test-xxx.eu-central-1.elb.amazonaws.com 添加到注册表中的 BackConnectionHostNames - 尝试手动多次编辑 rsreportserver.config,添加“http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer” 和

在网络选项卡的浏览器控制台中,有很多内部请求,其中一些带有 400“错误请求”错误 但问题并没有消失…… 请帮助我找到解决方案或至少找到方向。

【问题讨论】:

  • 在您的浏览器中: 1. 按 CTRL-F5 强制刷新; 2. 按 F12 并检查控制台以查看是否有文件失败。它的特殊之处在于它可以像那样加载一半
  • 所以你得到了一堆 http 400 错误。如果你能解决那些会解决它的问题
  • 在控制台中,您可以单击出现 400 错误的 URL 之一(比如以 bundle.min.css 结尾的那个),看看是否有任何信息超出“错误请求”
  • 还有...你能试试几个不同的浏览器吗?你现在用什么浏览器?

标签: reporting-services ssrs-2016 fqdn


【解决方案1】:

最后,我决定了我的问题。

在此之前,我多次尝试重新配置所有内容,但没有任何帮助。 然后看到https://social.msdn.microsoft.com/Forums/en-US/d2542ebb-61e0-4cf2-84c5-04614db36719/remote-server-returned-an-error-400-bad-request?forum=sqlreportingservices:

“问题似乎是由于 Reporting Services 虚拟目录未正确配置为使用 SSL。如果 Reporting Services 虚拟目录位于 Web 应用程序的同一站点中,一旦我们将应用程序配置为使用 SSL, Internet 信息服务器 (IIS) 也将要求 SSRS 使用 SSL。 要解决此问题,请通过 Reporting Services 配置管理器将 SSRS 配置为使用 SSL"

然后我做了:

  • 安装了一些 SSL 证书(甚至可以是另一个 URL 的证书)
  • 将集成到 SSL 证书的所有内部 IP + URL 映射到 SSRS 服务管理器中的 ReportServer 和 Reports SSRS Web 应用程序
  • 使用 CMD 命令停止 SSRS 服务
  • 从内部监听端口中删除错误匹配的 URL:
netsh http add urlacl url=https://xxx-test-xxx.eu-central-1.elb.amazonaws.com:443/ReportServer user="NT SERVICE\ReportServer"
netsh http add urlacl url=https://xxx-test-xxx.eu-central-1.elb.amazonaws.com:443/Reports user="NT SERVICE\ReportServer"
netsh http delete urlacl url=https://"trash URL, which is integrated to SSL certificate":443/ReportServer/
netsh http delete urlacl url=https://"trash URL, which is integrated to SSL certificate":443/Reports
netsh http show urlacl
  • 因此只有正确的 URL 应该在那里
  • 将 C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config 修改为适当的状态
  • 可能不必要的步骤: 更改了“bin”子文件夹中的 ReportingServicesService.exe.config:将“4”作为 DefaultTraceSwitch 值,将“all:3,http:4”作为 RStrace 部分中的 Components nvalue李>
  • 已启动 SSRS 服务。来自服务器外部的连接有效,但出现错误证书的警报。下一步应该为 URL 生成正确的证书并使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2018-04-07
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2020-11-11
    • 2022-01-04
    相关资源
    最近更新 更多