共用方式為


並排安裝 Reporting Services 和 Internet Information Services(SSRS 原生模式)

您可以在同一部計算機上安裝和執行 SQL Server 2014 Reporting Services (SSRS) 和 Internet Information Services (IIS)。 您使用的 IIS 版本會決定您必須解決的互作性問題。

適用於: Reporting Services 原生模式
IIS 版本 問題 說明
IIS 6.0、7.0、8.0、8.5 適用於一個應用程式的要求會由不同的應用程式接受。

HTTP.SYS會強制執行 URL 保留的優先順序規則。 如果一個應用程式的 URL 保留項目相對於另一個應用程式的 URL 保留項目較弱,則傳送至具有相同虛擬目錄名稱並共同監控埠 80 的應用程式的要求可能無法到達預期的目標。
在特定情況下,取代 URL 保留配置中另一個 URL 端點的已註冊端點可能會接收適用於其他應用程式的 HTTP 要求。

針對報表伺服器 Web 服務和報表管理員使用唯一的虛擬目錄名稱,可協助您避免這種衝突。

本主題提供此案例的詳細資訊。

URL 保留的優先順序規則

您必須先瞭解 URL 保留優先順序規則,才能解決 IIS 與 Reporting Services 之間的互作性問題。 優先順序規則可以一般化為下列語句:具有更明確定義的值的URL保留專案會先行接收符合URL的要求。

  • 指定虛擬目錄的 URL 保留專案比省略虛擬目錄的 URL 保留專案更明確。

  • 指定單一位址的 URL 保留(通過 IP 位址、完整域名、網路電腦名稱或主機名稱)比使用通配符來得更具體。

  • 指定強式通配符的 URL 保留專案比弱式通配符更明確。

下列範例顯示一系列 URL 保留項目,從最明確到最不明確的順序:

範例 請求
http://123.234.345.456:80/reports 接收傳送至 http://123.234.345.456/reports 或 http://<計算機名稱>/報告的所有要求,前提是網域名稱服務能將IP位址解析為該主機名稱。
http://+:80/reports 只要 URL 包含「報告」虛擬目錄名稱,就會接收任何傳送至該電腦有效IP位址或主機名的要求。
http://123.234.345.456:80 如果網域名稱服務可以將 IP 位址解析為該主機名,則會收到任何要求,這些要求指定了 http://123.234.345.456 或 http://< 計算機名稱>。
http://+:80 接收其他應用程式尚未接收到的要求,針對對應至All Assigned的任何應用程式端點。
http://*:80 針對對應至 [所有未指派] 的應用程式端點,接收其他應用程式尚未接收的要求。

埠衝突的一個指示是,您會看到下列錯誤訊息:「System.IO.FileLoadException:進程無法存取檔案,因為它正由另一個進程使用。 (HRESULT 的例外狀況:0x80070020)。

IIS 6.0、7.0、8.0、8.5 與 SQL Server 2014 Reporting Services 的 URL 保留設定

假設上一節所述的優先順序規則,您可以開始瞭解為 Reporting Services 和 IIS 定義 URL 保留專案如何提升互作性。 Reporting Services 會接收明確指定其應用程式的虛擬目錄名稱的要求;IIS 會接收所有剩餘的要求,然後可以導向至在 IIS 進程模型中執行的應用程式。

應用程式 URL 預留 說明 索取收據
報表伺服器 http://+:80/ReportServer 在埠 80 上使用強式通配符,並設有報表伺服器的虛擬目錄。 接收埠 80 上指定報表伺服器虛擬目錄的所有要求。 報表伺服器 Web 服務會接收所有至 http://<電腦名稱>/reportserver 的要求。
報表管理員 http://+:80/Reports 埠 80 上的強式通配符,具有 Reports 虛擬目錄。 接收埠 80 上指定報告虛擬目錄的所有要求。 報表管理員會接收所有到 http://<computername>/reports 的請求。
IIS http://*:80/ 埠 80 上的弱式通配符。 在埠 80 上接收其他應用程式未收到的任何剩餘要求。

在 IIS 6.0、7.0、8.0、8.5 上並行部署 SQL Server 2014 和 SQL Server 2005 Reporting Services

當 IIS 網站具有與 Reporting Services 所使用的虛擬目錄名稱相同的虛擬目錄名稱時,就會發生 IIS 與 Reporting Services 之間的互作性問題。 例如,假設您有下列設定:

  • IIS 中的網站,使用埠 80 並且有一個名為“Reports”的虛擬目錄。

  • 默認組態中安裝的 SQL Server 2014 報表伺服器實例,其中 URL 保留區也會指定埠 80,而報表管理員應用程式也會使用 “Reports” 作為虛擬目錄名稱。

鑒於此設定,報表管理員會收到傳送至 http://< computername>:80/reports 的要求。 在安裝 SQL Server 2014 報表伺服器實例之後,透過 IIS 中的 Reports 虛擬目錄存取的應用程式將不再收到要求。

如果您執行舊版和較新版本 Reporting Services 的並存部署,您可能會遇到剛才所述的路由問題。 這是因為 Reporting Services 的所有版本都會使用 “ReportServer” 和 “Reports” 做為報表伺服器和報表管理員應用程式的虛擬目錄名稱,增加您在 IIS 中會有“reports” 和 “reportserver” 虛擬目錄的可能性。

若要確保所有應用程式都會收到要求,請遵循下列指導方針:

  • 針對 Reporting Services 的安裝,請使用那些尚未被同埠上的任何 IIS 網站使用的虛擬目錄名稱。 如果發生衝突,請在「僅限檔案」模式中安裝 Reporting Services(在安裝精靈中選擇「安裝但不設定伺服器」選項),以便在安裝完成後設定虛擬目錄。 您的設定發生衝突的一個指示是,您會看到錯誤訊息:System.IO.FileLoadException:進程無法存取檔案,因為它正由另一個進程使用。 (HRESULT 的例外狀況:0x80070020)。

  • 針對手動設定的安裝,請在設定的URL中採用預設命名慣例。 如果您將 SQL Server 2014 Reporting Services (SSRS) 安裝為具名實例,請在建立虛擬目錄時包含實例名稱。

另請參閱

設定報表伺服器 URL (SSRS 組態管理員)
設定 URL(SSRS 組態管理員)
安裝 Reporting Services 原生模式報表伺服器