1

我在从服务器外部访问 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“hosts”文件中)。

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

  • 服务器的主要 IIS Web 应用程序使用 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com 成功打开(我必须在登录窗口中从服务器输入我的 AD 凭据)
  • ReportServer 虚拟文件夹使用 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer 成功打开(我必须在登录窗口中从服务器输入我的 AD 凭据)
  • 但是当我尝试通过 http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/Reports 打开 Reports 虚拟文件夹时 - 输入我的 AD 凭据后,我看到页面损坏或未加载. 有时是timeout_text,有时我什至会看到损坏的页面的标题损坏_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“错误请求”错误但问题并没有消失......请帮助我找到解决方案或至少找到方向。

4

1 回答 1

2

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

在此之前,我多次尝试重新配置所有内容,但没有任何帮助。然后我看到了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 生成正确的证书并使用它。
于 2017-10-24T12:01:28.997 回答