Aracılığıyla paylaş


Özel Bağlama Taşıma ve Kodlama

Aktarım örneği , çeşitli aktarım ve ileti kodlama öğeleriyle özel bağlama yapılandırmayı gösterir. Özel bağlama, ayrık bağlama öğelerinin sıralı bir listesiyle tanımlanır.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.

Bu örnek Kendi Kendine Konağı temel alır ve özel bağlamalarla HTTP, TCP ve NamedPipe aktarımlarını destekleyecek üç uç nokta yapılandıracak şekilde değiştirilmiştir. İstemci yapılandırması benzer şekilde değiştirildi ve istemci kodu üç uç noktanın her biriyle iletişim kuracak şekilde değiştirildi.

Örnek, belirli bir aktarım ve ileti kodlamasını destekleyen özel bağlamanın nasıl yapılandırıldığını gösterir. Bu, öğesi için bir aktarım ve ileti kodlama yapılandırılarak binding gerçekleştirilir. Her biri kanal yığınındaki bir katmanı temsil ettiğinden bağlama öğelerinin sıralanması özel bağlama tanımlamada önemlidir (bkz . Özel Bağlamalar). Bu örnek üç özel bağlama yapılandırıyor: metin kodlamalı bir HTTP aktarımı, metin kodlamalı TCP aktarımı ve ikili kodlamalı NamedPipe aktarımı.

Hizmet yapılandırması, özel bağlamaları aşağıdaki gibi tanımlar:

<bindings>
    <customBinding>
        <binding name="HttpBinding" >
            <textMessageEncoding
                messageVersion="Soap12Addressing10"/>
            <httpTransport />
        </binding>
        <binding name="TcpBinding" >
            <textMessageEncoding />
            <tcpTransport />
        </binding>
        <binding name="NamedPipeBinding" >
            <binaryMessageEncoding />
            <namedPipeTransport />
        </binding>
    </customBinding>
</bindings>

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları hem hizmet hem de istemci konsol penceresinde görüntülenir. İstemci, üç uç noktanın her biriyle iletişim kurar ve önce HTTP, ardından TCP ve son olarak NamedPipe'e erişilir. Hizmeti ve istemciyi kapatmak için her konsol penceresinde ENTER tuşuna basın.

Bağlama namedPipeTransport , makineden makineye işlemleri desteklemez. Yalnızca aynı makinedeki iletişim için kullanılır. Bu nedenle, örneği makineler arası bir senaryoda çalıştırırken istemci kodu dosyasında aşağıdaki satırları açıklama satırı yapın:

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()

Not

Bu örneğin yapılandırmasını yeniden oluşturmak için Svcutil.exe kullanıyorsanız, istemci yapılandırmasındaki uç nokta adını istemci koduyla eşleşecek şekilde değiştirdiğinizden emin olun.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çözümün C#, C++ veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığı altındaki yönergeleri izleyin.

  3. Örneği tek veya makineler arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.