多实例报表服务器部署的 URL 保留项
如果将多个 Reporting Services 实例安装在同一台计算机上,则必须考虑如何为每个实例定义 URL 保留项。在每个实例中,报表服务器 Web 服务和报表管理器都必须至少有一个 URL 保留项。整组保留项在 HTTP.SYS 中必须保持唯一。
在 URL 注册(发生在服务启动时)过程中会检测 URL 是否重复。如果您创建的 URL 保留项不唯一,那么,直到启动服务时,才会检测到名称冲突。因此,请确保遵循命名约定或规则以确保所有的值保持唯一。
默认的命名约定
可以将 Reporting Services 安装到 SQL Server 命名实例中。当您在命名实例中安装或配置报表服务器时,实例名称会自动包括在 Reporting Services 提供的默认 URL 保留项中的虚拟目录中。下表显示了默认实例和命名实例的 URL 保留项。
SQL Server 实例 |
默认 URL 保留项 |
---|---|
默认实例 (MSSQLServer) |
http://+:80/reportserver |
命名实例 (MynamedInstance) |
http://+:80/reportserver_MyNamedInstance |
对于命名实例,虚拟目录中包括实例名称。默认实例和命名实例在同一个端口上侦听,但是唯一的虚拟目录名称确定了请求将由哪个报表服务器获取。
建议的最佳实践是使用虚拟目录名称来区分报表服务器实例,这样可在 URL 和目标实例之间提供清楚的对应关系,并确保应用程序名称在整个系统中保持唯一。
自定义命名约定
尽管建议使用实例名称,但是您可以使用 URL 语法和自己的命名约定来满足 URL 保留项的唯一名称约束。下面的示例说明了用来为每个实例创建唯一 URL 的不同方法。
报表服务器的默认实例 (MSSQLSERVER) |
ReportServer_MyNamedInstance |
唯一性 |
---|---|---|
http://+:80/reportserver |
http://+:8888/reportserver |
每个实例都在一个不同的端口上侦听。 |
https://www.contoso.com/reportserver |
http://SRVR-46/reportserver |
每个实例都对应不同的服务器名称(完全限定域名和计算机名称)。 |
唯一性要求
Reporting Services 使用的基础技术对于唯一名称施加了一定的要求。HTTP.SYS 要求其存储库中的所有 URL 保持唯一。您可以通过改变端口、主机名或虚拟目录名称来创建唯一的 URL。ASP.NET 要求同一个进程内的应用程序标识保持唯一。此要求会影响虚拟目录名称。它规定您不能在同一个报表服务器实例中复制虚拟目录名称。