多实例报表服务器部署的 URL 预留

如果将多个 Reporting Services 实例安装在同一台计算机上,则必须考虑如何为每个实例定义 URL 预留。 在每个实例中,报表服务器 Web 服务和 Web 门户都必须至少有一个 URL 预留。 整组预留在 HTTP.SYS 中必须保持唯一。

在 URL 注册(发生在服务启动时)过程中会检测 URL 是否重复。 如果你创建的 URL 预留不唯一,那么,直到启动服务时,才会检测到名称冲突。 因此,请确保遵循命名约定或规则以确保所有的值保持唯一。

默认的命名约定

可以在 SQL Server 命名实例中安装 Reporting Services。 当你在命名实例中安装或配置报表服务器时,实例名称会自动包括在 Reporting Services 提供的默认 URL 预留中的虚拟目录中。 下表显示了默认实例和命名实例的 URL 预留。

SQL Server 实例 默认 URL 预留
默认实例 (MSSQLServer) https://+:80/reportserver
命名实例 (MynamedInstance) https://+:80/reportserver_MyNamedInstance

对于命名实例,虚拟目录中包括实例名称。 默认实例和命名实例在同一个端口上侦听,但是唯一的虚拟目录名称确定了请求将由哪个报表服务器获取。

建议的最佳实践是使用虚拟目录名称来区分报表服务器实例, 这样可在 URL 和目标实例之间提供清楚的对应关系,并确保应用程序名称在整个系统中保持唯一。

自定义命名约定

尽管建议使用实例名称,但是你可以使用 URL 语法和自己的命名约定来满足 URL 预留的唯一名称约束。 下面的示例说明了用来为每个实例创建唯一 URL 的不同方法。

报表服务器的默认实例 (MSSQLSERVER) ReportServer_MyNamedInstance 唯一性
https://+:80/reportserver https://+:8888/reportserver 每个实例都在一个不同的端口上侦听。
https://www.contoso.com/reportserver https://SRVR-46/reportserver 每个实例都对应不同的服务器名称(完全限定域名和计算机名称)。

唯一性要求

Reporting Services 使用的基础技术对于唯一名称施加了一定的要求。 HTTP.SYS 要求其存储库中的所有 URL 保持唯一。 您可以通过改变端口、主机名或虚拟目录名称来创建唯一的 URL。 ASP.NET 要求同一个进程内的应用程序标识保持唯一。 此要求会影响虚拟目录名称。 它规定您不能在同一个报表服务器实例中复制虚拟目录名称。