La dirección o Address, es la primera parte del ABC de WCF. La misma define donde se encuentra ubicado el servicio, puede ser un servidor remoto en internet, en la intranet, o una misma PC.
La dirección contiene toda la información necesaria para que los clientes puedan conectarse a él, o los endpoints del servicio. Está compuesta de las siguientes partes:
[transporte]://[maquina][:puerto]/[ruta]
Transporte
El protocolo de transporte (Transport Protocol o Transport Scheme) es el medio de comunicación de él, o los endpoints del servicio. WCF soporta los siguientes Esquemas de Transporte:
- HTTP/HTTPS.
- TCP.
- IPC.
- MSMQ.
- Service Bus.
- WebSocket.
- UDP.
Direcciones HTTP
Las direcciones HTTP usan como transporte el protocolo http o http seguro (https). Es el transporte preferido para la web.
El formato de las direcciones HTTP es:
http://[nombre de dominio o nombre de servidor o dirección IP][:puerto]/[ruta]
Algunas ejemplos de direcciones HTTP:
http://midominio:8001/MiServicio
http://localhost:8001
http://172.217.4.4:8001/publico/MiServicio
Si no se especifica el puerto, el default es el 80 y 443 para HTTPS.
https://midominio.com/MiServicio
Direcciones TCP
Como su nombre lo indica, las direcciones TCP usan como transporte el protocolo TCP. Por lo general incluyen el número de puerto al cual conectarse.
net.tcp://localhost:8001/MiServicio
Cuando el puerto no es especificado, el default es el 808.
net.tcp://localhost/MiServicio
Es posible que dos direcciones TCP del mismo host, compartan un mismo puerto:
net.tcp://localhost:8001/MiServicio
net.tcp://localhost:8001/MiOtroServicio
Direcciones IPC
Las direcciones Inter Process Communication (IPC) usan net.pipe como transporte. Estos servicios solo pueden comunicarse con los clientes de la misma máquina. Tampoco es permitido que dos direcciones compartan el mismo nombre.
net.pipe://localhost/MyPipe
Direcciones MSMQ
Las direcciones Microsoft Message Queue (MSMQ) usan como transporte net.msmq. Se debe especificar el nombre de la cola y a su vez su tipo. Si se omite, por default la cola es pública.
net.msmq://localhost/privado/MiServicio
net.msmq://localhost/MiServicio
Direcciones WebSocket
Las direcciones WebSocket son usadas cuando se requiere callback en internet. Si no se especifica el puerto, se usará el default de HTTP.
ws://localhost:8001
Direcciones UDP
Las direcciones UDP usan soap.udp como transporte.
soap.udp://localhost:8081