SoapAndHttpEndpoints 範例會示範如何使用 WCF Web 程式設計模型實作 RPC 服務,並且在 SOAP 格式和 "Plain Old XML" (POX) 格式中公開該服務。 如需服務的 HTTP 繫結詳細資訊,請參閱基本 HTTP 服務。 這個範例的重點在於,使用不同繫結透過 SOAP 和 HTTP 公開相同服務的相關詳細資料。
示範
使用 WCF 透過 SOAP 和 HTTP 公開 RPC 服務。
討論
這個範例是由兩個元件所組成:包含 WCF 服務的 Web 應用程式專案 (服務),以及使用 SOAP 和 HTTP 繫結叫用服務作業的主控台應用程式 (用戶端)。
WCF 服務會公開兩項作業:GetData 和 PutData,這兩項作業會 echo 當做輸入傳遞的字串。 服務作業會以 WebGetAttribute 和 WebInvokeAttribute 標註。 這些屬性會控制這些作業的 HTTP 投射。 此外,這些作業還會以 OperationContractAttribute 標註,這個屬性可讓作業透過 SOAP 繫結公開。 服務的 PutData 方法會擲回 WebFaultException,它會使用 HTTP 狀態碼透過 HTTP 送回,以及透過 SOAP 做為 SOAP 錯誤送回。
Web.config 檔案會為 WCF 服務設定 3 個端點:
~/service.svc/mex 端點,這個端點會公開服務中繼資料讓 SOAP 用戶端存取。
~/service.svc/http 端點,這個端點會讓用戶端使用 HTTP 繫結存取服務。
~/service.svc/soap 端點,這個端點可讓用戶端使用 SOAP over HTTP 繫結存取服務。
HTTP 端點會以 <webHttp> 標準端點設定,其 helpEnabled 會設定為 true。 因此,服務會在 HTTP 用戶端可用來存取服務的 ~/service.svc/http/help 公開 XHTML 說明頁。
用戶端專案會示範使用 SOAP Proxy 存取服務 (透過 [加入服務參考] 產生),以及使用 WebClient 存取服務。
這個範例包含 Web 主控服務和主控台應用程式。 當主控台應用程式執行時,用戶端會對服務發出要求,然後將相關的資訊從回應寫入至主控台視窗。
若要執行範例
開啟「SOAP 和 HTTP 端點範例」的方案。
若要建置解決方案,請按 Ctrl+Shift+B。
如果尚未開啟,請按下 CTRL+W、S 開啟 [方案總管] 視窗。
以滑鼠右鍵按一下 [方案總管] 視窗中的 [服務] 專案,並將游標放在 [偵錯] 操作功能表選項上,如此便會出現 [開始新執行個體] 操作功能表。 按一下 [開始新執行個體]。 這樣會啟動裝載服務的 ASP.NET 程式開發伺服器。
以滑鼠右鍵按一下 [方案總管] 視窗中的 [用戶端] 專案,並將游標放在 [偵錯] 操作功能表選項上,如此便會出現 [開始新執行個體] 操作功能表。 按一下 [開始新執行個體]。
用戶端主控台視窗隨即出現,並提供執行中服務的 URI,以及執行中服務之 HTML 說明頁的 URI。 您可以隨時在瀏覽器中輸入說明頁的 URI 來檢視 HTML 說明頁。
當範例執行時,用戶端會寫入目前活動的狀態。
按下任何按鍵可終止用戶端主控台應用程式。
按 SHIFT+F5 停止對服務偵錯。
以滑鼠右鍵按一下 Windows 通知區域中的 ASP.NET 程式開發伺服器圖示,然後從操作功能表選取 [停止]。