Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het voorbeeld Transport laat zien hoe u een aangepaste binding configureert met verschillende transport- en berichtcoderingselementen. Een aangepaste binding wordt gedefinieerd door een geordende lijst met discrete bindingselementen.
Opmerking
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
Dit voorbeeld is gebaseerd op de self-host en is gewijzigd om drie eindpunten te configureren ter ondersteuning van HTTP-, TCP- en NamedPipe-transporten met aangepaste bindingen. De clientconfiguratie is op dezelfde manier gewijzigd en de clientcode is gewijzigd om te communiceren met elk van de drie eindpunten.
In het voorbeeld ziet u hoe u een aangepaste binding configureert die ondersteuning biedt voor een bepaalde transport- en berichtcodering. Dit wordt bereikt door het configureren van een transport en een berichtcodering voor het binding
element. De volgorde van bindingselementen is belangrijk bij het definiëren van een aangepaste binding, omdat elk een laag in de kanaalstack vertegenwoordigt (zie Aangepaste bindingen). In dit voorbeeld worden drie aangepaste bindingen geconfigureerd: een HTTP-transport met tekstcodering, een TCP-transport met tekstcodering en een NamedPipe-transport met een binaire codering.
De serviceconfiguratie definieert de aangepaste bindingen als volgt:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in zowel het service- als clientconsolevenster. De client communiceert met elk van de drie eindpunten en krijgt eerst toegang tot HTTP, vervolgens tot TCP, en tot slot tot Named Pipe. Druk in elk consolevenster op Enter om de service en client af te sluiten.
De namedPipeTransport
binding biedt geen ondersteuning voor machine-naar-machine-bewerkingen. Deze wordt alleen gebruikt voor communicatie op dezelfde computer. Als u het voorbeeld uitvoert in een scenario voor meerdere machines, markeert u daarom de volgende regels in het clientcodebestand:
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()
Opmerking
Als u Svcutil.exe gebruikt om de configuratie voor dit voorbeeld opnieuw te genereren, moet u de eindpuntnaam in de clientconfiguratie wijzigen zodat deze overeenkomt met de clientcode.
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Als u de C#-, C++- of Visual Basic .NET-editie van de oplossing wilt bouwen, volgt u de instructies in het bouwen van de Windows Communication Foundation-voorbeelden.
Als u het voorbeeld wilt uitvoeren in een configuratie met één of meerdere computers, volgt u de instructies in Windows Communication Foundation-voorbeelden uitvoeren.