HOW TO:在 WAS 中裝載 WCF 服務
本主題概要說明建立 Windows Process Activation Services (又稱為 WAS) 所裝載的 Windows Communication Foundation (WCF) 服務時,必要的基本步驟。WAS 這項新的處理序啟動服務整合了所有搭配使用非 HTTP 傳輸通訊協定的網際網路資訊服務 (IIS) 功能。WCF 使用接聽項配接器介面與透過 WCF 所支援的非 HTTP 通訊協定 (例如 TCP、具名管道,與訊息佇列) 接收的啟動要求進行通訊。
這個裝載選項要求 WAS 啟動元件必須正確安裝與設定,但不要求將任何裝載程式碼撰寫為應用程式的一部分。如需 安裝與設定 WAS 的詳細資訊,請參閱 HOW TO:安裝和設定 WCF 啟動元件。
透過 WAS 裝載 WCF 服務時,會以一般方式來使用標準繫結。但是,當透過 NetTcpBinding 和 NetNamedPipeBinding 來設定 WAS 裝載的服務時,就必須滿足下列限制。當不同的端點使用同一個傳輸,繫結設定必須符合下列七項屬性:
- ConnectionBufferSize
- ChannelInitializationTimeout
- MaxPendingConnections
- MaxOutputDelay
- MaxPendingAccepts
- ConnectionPoolSettings.IdleTimeout
- ConnectionPoolSettings.MaxOutboundConnectionsPerEndpoint
否則,先初始化的端點一律直接決定這些屬性的值,而稍後新增的端點則會在這些屬性值未符合上述設定值時擲回 ServiceActivationException。
如需這個範例的原始檔複本,請參閱 TCP Activation。
若要建立 WAS 裝載的基本服務
定義服務類型的服務合約。
在服務類別中實作服務合約。請注意,服務的實作內並未指定位址或繫結資訊。同時,您不需要撰寫可從組態檔擷取該資訊的程式碼。
請建立 Web.config 檔,為使用 NetTcpBinding 的 CalculatorService 設定端點。
建立包含此行的 Service.svc 檔案:
<%@ServiceHost language=c# Service="CalculatorService" %>
將 Service.svc 檔放入您的 IIS 虛擬目錄中。
若要建立用戶端來使用服務
從命令列使用 ServiceModel Metadata Utility Tool (Svcutil.exe),產生來自服務中繼資料的程式碼。
Svcutil.exe <service's Metadata Exchange (MEX) address or HTTP GET address>
所產生的用戶端會包含 ICalculator 介面,其中定義了用戶端實作所必須滿足的服務合約。
產生的用戶端應用程式也包含 ClientCalculator 的實作。請注意,服務的實作內部並未指定位址和繫結資訊。同時,您不需要撰寫可從組態檔擷取該資訊的程式碼。
使用 NetTcpBinding 的用戶端組態也是由 Svcutil.exe 所產生的。使用 Visual Studio 時,此檔案應該命名為 App.config。
在應用程式中建立 ClientCalculator 的執行個體,然後呼叫服務作業。
請編譯並執行用戶端。