SOAP 在 Reporting Services 中的角色

報表伺服器 Web 服務透過網路使用簡易物件存取通訊協定 (SOAP) 訊息,傳送以文字為基礎的命令。 這些命令使用 XML 文字的格式,以 HTTP 透過全球資訊網來傳送文字。 透過使用 SOAP 做為其通訊協定,報表伺服器 Web 服務允許應用程式和元件使用開放且廣為接受的基礎結構,來與報表伺服器交換資料。 SOAP 標準定義於 www.w3.org/TR/SOAP

任何用戶端應用程式只要是SOAP感知,就可以做為SOAP用戶端,而且可以傳送SOAP要求。 報表管理員就是這類的 SOAP 用戶端。 它提供儲存所有報表與報表相關內容之報表伺服器資料庫的介面。 使用者可以使用應用程式,來瀏覽和管理報表伺服器命名空間中的報表與資料夾。 報表管理員是建立在報表伺服器 Web 服務基礎結構上。

報表伺服器可做為 SOAP 伺服器,這是可從 SOAP 用戶端接受要求並建立適當回應的 SOAP 感知服務。 伺服器會處理要求並將編碼的回應傳回用戶端。

Reporting Services 中的 SOAP 訊息有許多不同的形式,視用戶端所提出的要求類型而定。 下列範例代表簡單的 SOAP 用戶端要求,以移除報表伺服器資料庫中的項目。

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <soap:Body>  
        <DeleteItem xmlns="http://www.microsoft.com/sql/ReportingServer">  
            <item>/Samples/Report1</item>  
        </DeleteItem>  
    </soap:Body>  
</soap:Envelope>  

SOAP 本身需要將訊息放入 Envelope 項目中,並且在 Body 項目中含有大量的訊息。 在此範例中,本文包含對 DeleteItem 方法的呼叫,這需要代表要刪除的項目路徑之字串參數。 您可以建立會將所有 SOAP 作業封裝成方法的 Microsoft .NET Framework 用戶端 Proxy 類別。 下列 Microsoft C# 方法代表稍早提供的 SOAP 範例。

public void DeleteItem(string item);  

來自伺服器的回應看起來可能如下列範例所示:

<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <soap:Body>  
        <DeleteItemResponse xmlns="http://www.microsoft.com/sql/ReportingServer" />  
    </soap:Body>  
</soap:Envelope>  

DeleteItem 方法沒有傳回值,所以會傳回空的回應。

存取 SOAP API
報表管理員 (SSRS 原生模式)
Reporting Services Report Server
報表伺服器 Web 服務