tags:

views:

269

answers:

1
+1  Q: 

WCF IPv6 Endpoints

I'm investigating the possibility of using the Peer 2 Peer along with WCF in a Windows app for an EPoS terminal.

The app will sit on a number of PC's in a local network; there will only ever be one instance of the app per PC.

My current thinking is that my app starts up and joins the peer mesh, on joining the mesh it periodically shouts out a 'heartbeat' message which contains its terminal id and IPv6 address.

Any other terminals joining the mesh receive these heartbeats and maintain their own list of terminals in the network.

Actions within the app will require accessing a specific terminal on the network. The app therefore resolves the terminal id to an ip address and can generate a Uri to access the service via net.tcp

I have published the service endpoint using the link local address

printingHostRemote = New ServiceHost(printSpooler, New Uri("net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService))
printingHostRemote.AddServiceEndpoint(GetType(IPrintingService), tcpPipeBinding, "net.tcp://" & myNetworkAddress & "/" & ServiceNames.PrintingService)

The string to setup the endpoint would be, for example:

"net.tcp://[fe80::250:56ff:fec0:8%4]:5555/GSS-POS/PrintingService"

However, when I try an access this service I get an error saying that the host is unreachable.

TCP error code 10065: A socket operation was attempted to an unreachable host fe80::290:5ff:fe01:6303%4:5555

I realise this is down to my limited knowledge of IPv6 addressing. What address should I be using for my endpoint (I'm using the link local IPv6 address) ? Or is my overall concept flawed?

TIA,

Simon

A: 

Ok, I think I understand this now.

My development machine has VMWare installed and therefore has two other network interfaces. I need to append the scope of the local network interface I want to use to the IP6 address of the remote machine.

Simon Temlett