共用方式為


自訂繫結傳輸和編碼

傳輸範例會示範如何使用各種傳輸與訊息編碼元素來設定自訂繫結。 自訂繫結由經過排序的獨立繫結項目清單所定義。

注意

此範例的安裝程序與建置指示位於本主題的結尾。

這個範例是以自我裝載為基礎,而且已修改成以自訂繫結來設定可支援 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 重新產生這個範例的組態,請務必修改用戶端組態中的端點名稱,以符合用戶端程式碼。

若要安裝、建置及執行範例

  1. 確定您已執行 Windows Communication Foundation 範例的一次性安裝程序

  2. 若要建置方案的 C#、C++ 或 Visual Basic .NET 版本,請遵循 建置 Windows Communication Foundation 範例 (部分機器翻譯) 中的指示。

  3. 若要在單一或多部電腦組態中執行此範例,請遵循執行 Windows Communication Foundation 範例中的指示進行。