並存部署 Reporting Services 和 Internet Information Services
您可以在同一部電腦上安裝和執行 SQL Server 2008Reporting Services 與 Internet Information Services (IIS)。您所使用的 IIS 版本會決定必須處理的互通性問題。
IIS 版本 |
問題 |
描述 |
---|---|---|
IIS 6.0 和 7.0 |
適用於某個應用程式的要求被不同的應用程式所接受。 HTTP.SYS 會針對 URL 保留項目強制執行優先順序規則。如果 URL 保留項目比另一個應用程式的 URL 保留項目更弱,傳送至具有相同虛擬目錄名稱而且共同監視通訊埠 80 之應用程式的要求可能無法送達預期的目標。 |
在特定條件底下,在 URL 保留項目配置中取代另一個 URL 端點的已註冊端點可能會收到適用於其他應用程式的 HTTP 要求。 針對報表伺服器 Web 服務和報表管理員使用唯一的虛擬目錄名稱可協助您避免這項衝突。 本主題將提供有關這個狀況的詳細資訊。 |
IIS 5.1 |
通訊埠衝突 |
根據預設,IIS 5.1 會保留本身專用的通訊埠 80。如果您將 SQL Server 2008Reporting Services 安裝在 32 位元的 Windows XP (SP2) 上,Reporting Services URL 的預設通訊埠就是通訊埠 8080: http://<servername>:8080/reportserver http://<servername>:8080/reports 在 64 位元的平台上,Reporting Services URL 的預設通訊埠是通訊埠 80。IIS 5.1 會在 Windows XP SP2 的 64 位元版本中使用 HTTP.SYS,讓這兩個應用程式共用通訊埠 80。 |
URL 保留項目的優先順序規則
在您處理 IIS 與 Reporting Services 之間的互通性問題之前,必須了解 URL 保留項目的優先順序規則。優先順序規則可以歸納成為下列陳述式:具有更多明確定義值的 URL 保留項目會優先接收符合此 URL 的要求。
指定虛擬目錄的 URL 保留項目會比省略虛擬目錄的 URL 保留項目更明確。
指定單一位址 (透過 IP 位址、完整網域名稱、網路電腦名稱或主機名稱) 的 URL 保留項目會比萬用字元更明確。
指定強式萬用字元的 URL 保留項目會比弱式萬用字元更明確。
下列範例會顯示 URL 保留項目的範圍,從最明確到最不明確的順序排列:
範例 |
要求 |
---|---|
http://123.234.345.456:80/reports |
如果網域名稱服務可以將此 IP 位址解析成該主機名稱,便接收傳送至 http://123.234.345.456/reports 或 http://<computername>/reports 的所有要求。 |
http://+:80/reports |
只要此 URL 包含 "reports" 虛擬目錄名稱,便接收傳送至適用於該電腦之任何 IP 位址或主機名稱的任何要求。 |
http://123.234.345.456:80 |
如果網域名稱服務可以將此 IP 位址解析成該主機名稱,便接收指定 http://123.234.345.456 或 http://<computername> 的所有要求。 |
http://+:80 |
若為對應至 [全部指派] 的應用程式端點,便接收尚未由其他應用程式接收的要求。 |
http://*:80 |
若為對應至 [全未指派] 的應用程式端點,便接收尚未由其他應用程式接收的要求。 |
IIS 6.0 和 7.0 與 SQL Server 2008 Reporting Services 的 URL 保留項目
根據上一節所描述的優先順序規則,您可以開始了解針對 Reporting Services 和 IIS 所定義的 URL 保留項目如何提升互通性。Reporting Services 會接收明確指定其應用程式之虛擬目錄名稱的要求。IIS 會接收所有其餘要求,然後您可以將這些要求導向至 IIS 處理模型內部執行的應用程式。
應用程式 |
URL 保留項目 |
描述 |
要求接收 |
---|---|---|---|
報表伺服器 |
http://+:80/ReportServer |
通訊埠 80 的強式萬用字元,以及報表伺服器虛擬目錄。 |
在通訊埠 80 上接收指定報表伺服器虛擬目錄的所有要求。報表伺服器 Web 服務會接收 http://<computername>/reportserver 的所有要求。 |
報表管理員 |
http://+:80/Reports |
通訊埠 80 的強式萬用字元,以及 Reports 虛擬目錄。 |
在通訊埠 80 上接收指定 Reports 虛擬目錄的所有要求。報表管理員會接收 http://<computername>/reports 的所有要求。 |
IIS |
http://*:80/ |
通訊埠 80 的弱式萬用字元。 |
在通訊埠 80 上接收其他應用程式未接收的任何其餘要求。 |
在 IIS 6.0 或 7.0 上並存部署 SQL Server 2008 與 SQL Server 2005 Reporting Services
當 IIS 網站的虛擬目錄名稱與 Reporting Services 所使用的虛擬目錄名稱完全相同時,IIS 與 Reporting Services 之間就會發生互通性問題。例如,假設您有下列組態:
指派至通訊埠 80 以及名為 "Reports" 之虛擬目錄的 IIS 網站。
以預設組態安裝的 SQL Server 2008 報表伺服器執行個體,其中 URL 保留項目也指定了通訊埠 80 而報表管理員應用程式也將 "Reports" 用於虛擬目錄名稱。
如果您採用了這種組態,則傳送至 http://<computername>:80/reports 的要求將由報表管理員所接收。安裝了 SQL Server 2008 報表伺服器執行個體之後,透過 IIS 中 Reports 虛擬目錄存取的應用程式將不會再接收要求。
如果您要執行舊版與新版 Reporting Services 的並存部署,可能會遇到上述路由傳送的問題。這是因為所有 Reporting Services 版本都會使用 "ReportServer" 和 "Reports" 當做報表伺服器與報表管理員應用程式的虛擬目錄名稱,因而增加您在 IIS 中設有 "reports" 和 "reportserver" 虛擬目錄的可能性。
為了確保所有應用程式都會接收要求,請遵循下列指導方針:
針對 Reporting Services 安裝,請使用 IIS 網站與 Reporting Services 在相同通訊埠上尚未使用的虛擬目錄名稱。如果發生衝突,請以「僅限檔案」模式安裝 Reporting Services (使用「安裝」,但不要在安裝精靈中設定伺服器選項),以便您可以在安裝完成之後設定虛擬目錄。
針對手動設定的安裝,請在設定的 URL 中採用預設命名慣例。如果您將 SQL Server 2008Reporting Services 安裝成具名執行個體,請在建立虛擬目錄時加入執行個體名稱。
與 Windows XP SP2 上 IIS 5.1 的互通性
Windows XP SP2 會提供 Reporting Services 所需的 HTTP.SYS 元件。不過,即使作業系統提供了 HTTP.SYS,IIS 5.1 仍然不會使用它。IIS 5.1 會改為接受通訊埠 80 或設定要使用之任何通訊埠的所有要求。因為 HTTP.SYS 中沒有 IIS 5.1 的 URL 保留項目,因此無法集中管理要求佇列,以便允許 Reporting Services Web 應用程式接受相同通訊埠的要求。
因此,安裝在 32 位元 Windows XP SP2 上之報表伺服器的預設組態是針對報表伺服器 Web 服務和報表管理員使用通訊埠 8080。下表將顯示 Web 服務和報表管理員的 URL 保留項目:
http://+:8080/reportserver
http://+:8080/reports
針對 Reporting Services 應用程式的 URL 保留項目使用非預設通訊埠是表示舊版 Reporting Services 的並存狀況沒有任何 URL 衝突。
如果您在同一部電腦上安裝了舊版和新版的報表伺服器執行個體,預設 URL 就是 http://<servername>/<reportserver> (代表透過 IIS 存取的 Reporting Services 2005 報表伺服器) 和 http://<servername>:8080/<reportserver> (代表 SQL Server 2008Reporting Services 報表伺服器)。