Kódování a přenos vlastní vazby
Ukázka přenosu ukazuje, jak nakonfigurovat vlastní vazbu s různými prvky kódování přenosu a zpráv. Vlastní vazba je definována seřazeným seznamem diskrétních vazeb prvků.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Tato ukázka je založená na místním hostiteli a byla upravena tak, aby konfigurovala tři koncové body pro podporu přenosů HTTP, TCP a NamedPipe s vlastními vazbami. Konfigurace klienta byla podobně upravena a kód klienta se změnil tak, aby komunikoval s jednotlivými třemi koncovými body.
Ukázka ukazuje, jak nakonfigurovat vlastní vazbu, která podporuje konkrétní kódování přenosu a zpráv. Toho se dosahuje konfigurací přenosu a kódování zpráv pro binding
prvek. Řazení prvků vazby je důležité při definování vlastní vazby, protože každá představuje vrstvu v zásobníku kanálu (viz vlastní vazby). Tato ukázka konfiguruje tři vlastní vazby: přenos HTTP s kódováním textu, přenos TCP s kódováním textu a přenos NamedPipe s binárním kódováním.
Konfigurace služby definuje vlastní vazby následujícím způsobem:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně služby i konzoly klienta. Klient komunikuje s jednotlivými třemi koncovými body, přistupuje k prvnímu protokolu HTTP, pak TCP a nakonec PojmenovanýPipe. Stisknutím klávesy ENTER v každém okně konzoly vypnete službu a klienta.
Vazba namedPipeTransport
nepodporuje operace mezi počítači. Používá se pouze pro komunikaci na stejném počítači. Proto při spuštění ukázky ve scénáři křížového počítače okomentujte následující řádky v souboru kódu klienta:
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()
Poznámka:
Pokud použijete Svcutil.exe k opětovnému vygenerování konfigurace pro tuto ukázku, nezapomeňte upravit název koncového bodu v konfiguraci klienta tak, aby odpovídal kódu klienta.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C#, C++ nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.