Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la muestra sobre direccionamiento se demuestran varios aspectos y características de las direcciones de puntos de conexión. El ejemplo se basa en los Primeros pasos. En este ejemplo, el servicio se hospeda automáticamente. Tanto el servicio como el cliente son aplicaciones de consola. El servicio define varios puntos de conexión mediante una combinación de direcciones de punto de conexión relativas y absolutas.
Nota:
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
El archivo de configuración del servicio especifica una dirección base y cuatro puntos de conexión. La dirección base se especifica mediante el elemento add, en service/host/baseAddresses como se muestra en la siguiente configuración de ejemplo.
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
</service>
La primera definición de punto de conexión que se muestra en la siguiente configuración de ejemplo especifica una dirección relativa, lo que significa que la dirección del punto de conexión es una combinación de la dirección base y la dirección relativa siguiendo las reglas de composición de URI.
<!-- 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" />
En este caso, la dirección relativa está vacía (""), por lo que la dirección del punto de conexión es la misma que la dirección base. La dirección del punto de conexión real es http://localhost:8000/servicemodelsamples/service.
La segunda definición de punto de conexión también especifica una dirección relativa, como se muestra en la siguiente configuración de ejemplo.
<!-- 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" />
La dirección relativa, "test", se anexa a la dirección base. La dirección del punto de conexión real es http://localhost:8000/servicemodelsamples/service/test.
La tercera definición de punto de conexión especifica una dirección absoluta, como se muestra en la siguiente configuración de ejemplo.
<endpoint address="http://localhost:8001/hello/servicemodelsamples"
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
La dirección base no desempeña ningún papel en la dirección. La dirección del punto de conexión real es http://localhost:8001/hello/servicemodelsamples.
La cuarta dirección del punto de conexión especifica una dirección absoluta y un transporte diferente: TCP. La dirección base no desempeña ningún papel en la dirección. La dirección del punto de conexión real es 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" />
El cliente accede solo a uno de los cuatro puntos de conexión de servicio, pero los cuatro se definen en su archivo de configuración. El cliente selecciona un punto de conexión cuando crea el CalculatorProxy objeto . Cambiando el nombre de configuración de CalculatorEndpoint1 a través de CalculatorEndpoint4, puede ejercer cada uno de los extremos.
Al ejecutar el ejemplo, el servicio enumera la dirección, el nombre de enlace y el nombre del contrato para cada uno de sus puntos de conexión. El extremo de intercambio de metadatos (MEX) es simplemente otro extremo desde la perspectiva de ServiceHost, por lo que se muestra en la lista.
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.
Al ejecutar el cliente, las solicitudes de operación y las respuestas se muestran en las ventanas de servicio y consola de cliente. Presione Entrar en cada ventana de la consola para cerrar el servicio y el cliente.
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.
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.
Para ejecutar el ejemplo en una configuración de una máquina única o entre máquinas, siga las instrucciones de Ejecución de los ejemplos de Windows Communication Foundation.
Nota:
Si usa Svcutil.exe para volver a generar la configuración de este ejemplo, asegúrese de modificar el nombre del punto de conexión en la configuración de cliente para que coincida con el código de cliente.