自訂繫結傳輸和編碼
傳輸範例會示範如何使用各種傳輸與訊息編碼元素來設定自訂繫結。 自訂繫結由經過排序的獨立繫結項目清單所定義。
注意
此範例的安裝程序與建置指示位於本主題的結尾。
這個範例是以自我裝載為基礎,而且已修改成以自訂繫結來設定可支援 HTTP、TCP 和 NamedPipe 傳輸的三個端點。 用戶端組態已採用類似方式加以修改,因此用戶端程式碼已變更成與這三個端點中的每個端點進行通訊。
此範例會示範如何設定支援特定傳輸與訊息編碼的自訂繫結。 這是設定 binding
項目的傳輸與訊息編碼完成的。 繫結項目的排序對於定義自訂繫結很重要,因為每一個項目都代表通道堆疊中的一層 (請參閱自訂繫結)。 這個範例會設定三個自訂繫結:使用文字編碼的 HTTP 傳輸、使用文字編碼的 TCP 傳輸,以及使用二進位編碼的 NamedPipe 傳輸。
服務組態會定義如下所示的自訂繫結:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
當您執行範例時,作業要求和回應都會顯示在服務與用戶端主控台視窗中。 用戶端會與這三個端點個別進行通訊,步驟是先存取 HTTP,接著存取 TCP,最後再存取 NamedPipe。 在每個主控台視窗中按下 ENTER 鍵,即可關閉服務與用戶端。
namedPipeTransport
繫結不支援電腦對電腦的作業。 這個繫結只用於相同電腦上的通訊。 因此,如果是在跨電腦案例中執行此範例,請將用戶端程式碼檔中的下列程式碼行標記為註解:
CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()
注意
如果您使用 Svcutil.exe 重新產生這個範例的組態,請務必修改用戶端組態中的端點名稱,以符合用戶端程式碼。
若要安裝、建置及執行範例
若要建置方案的 C#、C++ 或 Visual Basic .NET 版本,請遵循 建置 Windows Communication Foundation 範例 (部分機器翻譯) 中的指示。
若要在單一或多部電腦組態中執行此範例,請遵循執行 Windows Communication Foundation 範例中的指示進行。