Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Adresseringsprovet demonstrerar olika aspekter och funktioner hos slutpunktsadresser. Exemplet baseras på Komma igång. I det här exemplet är tjänsten lokalt installerad. Både tjänsten och klienten är konsolprogram. Tjänsten definierar flera slutpunkter med hjälp av en kombination av relativa och absoluta slutpunktsadresser.
Anmärkning
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänstkonfigurationsfilen anger en basadress och fyra slutpunkter. Basadressen anges med hjälp av lägg till-elementet under tjänst/värd/baseAddresses som visas i följande exempelkonfiguration.
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
</service>
Den första slutpunktsdefinitionen som visas i följande exempelkonfiguration anger en relativ adress, vilket innebär att slutpunktsadressen är en kombination av basadressen och den relativa adressen enligt reglerna för URI-sammansättning.
<!-- Empty relative address specified:
use the base address provided by the host. -->
<!-- The endpoint address is
http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
I det här fallet är den relativa adressen tom (""), så slutpunktsadressen är densamma som basadressen. Den faktiska slutpunktsadressen är http://localhost:8000/servicemodelsamples/service
.
Den andra slutpunktsdefinitionen anger också en relativ adress, enligt följande exempelkonfiguration.
<!-- The relative address specified: use the base address -->
<!-- provided by the host + path. The endpoint address is -->
<!-- http://localhost:8000/servicemodelsamples/service/test. -->
<endpoint address="/test"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Den relativa adressen , "test", läggs till i basadressen. Den faktiska slutpunktsadressen är http://localhost:8000/servicemodelsamples/service/test
.
Den tredje slutpunktsdefinitionen anger en absolut adress, enligt följande exempelkonfiguration.
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Basadressen spelar ingen roll i adressen. Den faktiska slutpunktsadressen är http://localhost:8001/hello/servicemodelsamples
.
Den fjärde slutpunktsadressen anger en absolut adress och en annan transport – TCP. Basadressen spelar ingen roll i adressen. Den faktiska slutpunktsadressen är net.tcp://localhost:9000/servicemodelsamples/service
.
<!-- The absolute address specified, different transport: -->
<!-- use the specified address, and ignore the base address. -->
<!-- The endpoint address is -->
<!-- net.tcp://localhost:9000/servicemodelsamples/service. -->
<endpoint address=
"net.tcp://localhost:9000/servicemodelsamples/service"
binding="netTcpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
Klienten har bara åtkomst till en av de fyra tjänstslutpunkterna, men alla fyra definieras i konfigurationsfilen. Klienten väljer en slutpunkt när objektet CalculatorProxy
skapas. Genom att ändra konfigurationsnamnet från CalculatorEndpoint1
till CalculatorEndpoint4
kan du träna var och en av slutpunkterna.
När du kör exemplet räknar tjänsten upp adressen, bindningsnamnet och kontraktnamnet för var och en av dess slutpunkter. Slutpunkten för metadatautbyte (MEX) är bara en annan slutpunkt från ServiceHosts perspektiv så den visas i listan.
Service endpoints:
Endpoint - address: http://localhost:8000/ServiceModelSamples/service
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: http://localhost:8000/ServiceModelSamples/service/test
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: http://localhost:8001/hello/servicemodelsamples
binding: WSHttpBinding
contract: ICalculator
Endpoint - address: net.tcp://localhost:9000/servicemodelsamples/service
binding: NetTcpBinding
contract: ICalculator
Endpoint - address: http://localhost:8000/ServiceModelSamples/service/mex
binding: MetadataExchangeHttpBinding
contract: IMetadataExchange
The service is ready.
Press <ENTER> to terminate service.
När du kör klienten visas åtgärdsbegäranden och svar i både tjänst- och klientkonsolfönster. Tryck på RETUR i varje konsolfönster för att stänga av tjänsten och klienten.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Så här konfigurerar du, skapar och kör exemplet
Kontrollera att du har utfört One-Time installationsproceduren för Windows Communication Foundation-exempel.
Om du vill skapa C# eller Visual Basic .NET-versionen av lösningen följer du anvisningarna i Skapa Windows Communication Foundation-exempel.
Om du vill köra exemplet i en konfiguration med en eller flera datorer följer du anvisningarna i Köra Windows Communication Foundation-exempel.
Anmärkning
Om du använder Svcutil.exe för att återskapa konfigurationen för det här exemplet måste du ändra slutpunktsnamnet i klientkonfigurationen så att det matchar klientkoden.