建立 Web 服務 Proxy

用戶端與 Web 服務可以使用 SOAP 訊息彼此通訊。這些訊息會將輸入和輸出參數封裝成 XML。Proxy 類別會將參數對應至 XML 元素,然後透過網路傳送 SOAP 訊息。以此方式,Proxy 類別讓您可免於在 SOAP 層級與 Web 服務通訊,並且能在任何支援 SOAP 與 Web 服務 Proxy 的開發環境中,叫用 Web 服務方法。

使用 .NET Framework 時,有兩種方式可將 Proxy 類別加入開發專案:利用 .NET Framework 中的 WSDL 工具,以及在 Visual Studio 中加入 Web 參考。下列小節針對這個主題進行更詳細的討論。

使用 WSDL 工具加入 Proxy

.NET Framework SDK 包含 Web 服務描述語言工具 (Wsdl.exe),這可讓您在 .NET Framework 開發環境中產生要使用的 Web 服務 Proxy。使用支援 Web 服務的語言 (目前有 C# 與 Visual Basic) 建立用戶端 Proxy 的最常見方式,是使用 WSDL 工具。

使用 Wsdl.exe 將 Proxy 類別加入專案。

  1. 從命令提示,使用 Wsdl.exe 來建立 Proxy 類別,(至少) 將 URL 指定為報表伺服器 Web 服務。

    例如,下列命令提示陳述式會為報表伺服器 Web 服務的管理端點指定 URL:

    wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2005" http://<Server Name>/reportserver/reportservice2005.asmx?wsdl
    

    WSDL 工具會接受一些命令提示引數以產生 Proxy。上述範例會指定 C# 語言,這是在 Proxy 中要使用的建議命名空間 (如果使用一個以上的 Web 服務端點,便可防止名稱衝突),以及產生稱為 ReportingService2005.cs 的 C# 檔案。如果範例已指定 Visual Basic,則此範例將會產生名稱為 ReportingService2005.vb 的 Proxy 檔案。這個檔案是從您執行命令的目錄中建立。

  2. 將 Proxy 類別編譯為組件檔 (使用副檔名 .dll) 並在專案中參考它,或是將類別加入為專案項目。

    [!附註]

    當您手動將 Proxy 類別加入專案,需要將參考加入 System.Web.Services.dll。如果您在 Visual Studio .NET 中使用 Web 參考加入 Proxy,則會為您自動建立參考。如需詳細資訊,請參閱本主題稍後的「在 Visual Studio 中使用 Web 參考加入 Proxy」。

    在將 Proxy 類別以項目的方式加入專案之後,相關聯的檔案會出現在 [方案總管] 中。

  3. 若要以程式設計的方式呼叫服務,請建立 Proxy 類別的執行個體。

    下列程式碼範例會顯示在專案中建立 ReportingService2005 Proxy 類別之執行個體的語法:

Dim service As New ReportingService2005()
ReportingService2005 service = new ReportingService2005();

如需有關 Wsdl.exe 工具 (包括其完整的語法) 的詳細資訊,請參閱 .NET Framework SDK 文件集中的<Web 服務描述語言工具>。如需 Web 服務 Proxy 的完整說明,請參閱 .NET Framework SDK 文件集中的<建立 XML Web 服務 Proxy>。

使用 Visual Studio 中的 Web 參考來加入 Proxy

Web 參考允許專案取用一個或多個 Web 服務。Visual Studio 可讓使用者遵循一些簡單的步驟,將 Web 服務參考加入專案中。

將 Web 參考加入專案中

  1. [方案總管] 中,選取將取用 Web 服務的專案。

  2. [專案] 功能表上,按一下 [加入 Web 參考]

    [加入 Web 參考] 對話方塊隨即開啟。

  3. [URL] 欄位中,輸入報表伺服器 Web 服務的完整路徑。

    報表伺服器 Web 服務的報表執行端點之簡化的 URL,可能如下所示:

    http://<Server Name>/reportserver/reportexecution2005.asmx
    

    這個 URL 包含部署報表伺服器 Web 服務的網域、包含服務的資料夾名稱,以及服務的探索檔名稱。如需不同 URL 元素的完整描述,請參閱<存取 SOAP API>。

    Web 服務提供的方法與屬性之描述會出現在左邊的 [瀏覽器] 窗格中。

    [!附註]

    如需有關與報表伺服器 Web 服務相關聯的項目詳細資訊,請參閱<報表伺服器 Web 服務方法>。

  4. 請確認您的專案可以使用報表伺服器 Web 服務,而且您有適當的權限可以存取報表伺服器。

  5. [Web 參考名稱] 欄位中,輸入在程式碼中將以程式設計方式存取報表伺服器 Web 服務所使用的名稱。

  6. 選取 [加入參考] 按鈕,在應用程式中建立對 Web 服務的參考。

    [Web 參考名稱] 欄位中所指定名稱的新參考,將出現於 [方案總管] 中使用中專案的 [Web 參考] 節點之下。

  7. [方案總管] 中,展開 [Web 參考] 資料夾,以寫下在專案中項目的可用 Web 參考類別之命名空間。

    在將 Web 參考加入專案之後,會在 [方案總管] 的 [Web 參考] 資料夾的某個資料夾中顯示相關聯的檔案。

在加入 Web 參考之後,請使用下列語法建立 Proxy 類別的執行個體。

Dim rs As New myNamespace.myReferenceName.ReportExecutionService()
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "http://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials

您也可以將 using (在 Visual Basic 中的 [匯入]) 指示詞加入報表伺服器 Web 服務參考。如果您使用這個指示詞,就不需要完全符合命名空間的類型。若要這樣做,請將下列程式碼加入檔案中:

Import myNamespace.myReferenceName
using myNamespace.myReferenceName;