WS Dual Http
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 IIS (Internet Information Services). 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 kan de ICalculatorDuplex
client wiskundige bewerkingen uitvoeren, waardoor het resultaat van de sessie wordt berekend. Onafhankelijk van elkaar 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.
Notitie
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 WSDualHttpBinding
service, 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 /enable
Zorg ervoor dat u de eenmalige installatieprocedure 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 Het uitvoeren van de Windows Communication Foundation-voorbeelden.
Belangrijk
Wanneer u de client uitvoert in een configuratie tussen computers, moet u localhost vervangen in zowel het kenmerk van het
address
eindpunt van <het <clientelement>> als hetclientBaseAddress
kenmerk 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>