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 DualHttp-voorbeeld laat zien hoe u de WSDualHttpBinding binding configureert. Dit voorbeeld bestaat uit een clientconsoleprogramma (.exe) en een servicebibliotheek (.dll) die wordt gehost door Internet Information Services (IIS). De service implementeert een dubbelzijdig contract. Het contract wordt gedefinieerd door de ICalculatorDuplex interface, die wiskundige bewerkingen weergeeft (optellen, aftrekken, vermenigvuldigen en delen). In dit voorbeeld stelt de ICalculatorDuplex interface de client in staat om wiskundige bewerkingen uit te voeren, waarbij een doorlopend resultaat gedurende de sessie wordt berekend. Zelfstandig retourneert de service resultaten op de ICalculatorDuplexCallback interface. Een dubbelzijdig contract vereist een sessie, omdat er een context tot stand moet worden gebracht om de set berichten te correleren die worden verzonden tussen de client en de service. De WSDualHttpBinding binding ondersteunt dubbelzijdige communicatie.
Opmerking
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
Als u een service-eindpunt wilt configureren met de WSDualHttpBindingservice, geeft u de binding op in de eindpuntconfiguratie, zoals wordt weergegeven.
<endpoint address=""
binding="wsDualHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
Op de client moet u een adres configureren dat de server kan gebruiken om verbinding te maken met de client, zoals wordt weergegeven in de volgende voorbeeldconfiguratie.
<system.serviceModel>
<client>
<endpoint address=
"http://localhost/servicemodelsamples/service.svc"
binding="wsDualHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
</client>
<bindings>
<!-- Configure a WSDualHttpBinding that supports duplex -->
<!-- communication. -->
<wsDualHttpBinding>
<binding name="Binding1"
clientBaseAddress="http://localhost:8000/myClient/"
useDefaultWebProxy="true"
bypassProxyOnLocal="false">
</binding>
</wsDualHttpBinding>
</bindings>
</system.serviceModel>
Wanneer u het voorbeeld uitvoert, worden de bewerkingsaanvragen en -antwoorden weergegeven in het clientconsolevenster. Druk op Enter in het clientvenster om de client af te sluiten.
Press <ENTER> to terminate client once the output is displayed.
Result(100)
Result(50)
Result(882.5)
Result(441.25)
Equation(0 + 100 - 50 * 17.65 / 2 = 441.25)
Wanneer u het voorbeeld uitvoert, ziet u de berichten die naar de client zijn geretourneerd op de callback-interface die vanuit de service wordt verzonden. Elk tussenliggend resultaat wordt weergegeven, gevolgd door de volledige vergelijking na voltooiing van alle bewerkingen. Druk op Enter om de client af te sluiten.
Het voorbeeld instellen, compileren en uitvoeren
Installeer ASP.NET 4.0 met de volgende opdracht.
%windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enableZorg ervoor dat u de One-Time Setup Procedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Als u de 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.
Belangrijk
Wanneer u de client uitvoert in een configuratie tussen computers, moet u localhost vervangen in zowel het kenmerk van het
addresseindpunt van <het> clientelement<> als hetclientBaseAddresskenmerk van het <bindingselement> van het <wsDualHttpBinding-element> door de naam van de juiste computer, zoals wordt weergegeven:<client> <endpoint name = "" address= "http://service_machine_name/servicemodelsamples/service.svc" /> </client> ... <wsDualHttpBinding> <binding name="DuplexBinding" clientBaseAddress= "http://client_machine_name:8000/myClient/"> </binding> </wsDualHttpBinding>