Today I came across an odd problem related with WCF and net.pipe binding.
If I expose one pipe on address “net.pipe://aaa/service/endpoint” and another on address “net.pipe://bbb/service/endpoint” I got this exception
“Cannot listen on pipe name net.pipe://bbb/service/endpoint because another pipe endpoint is already listening on that name. “
I found this very strange.
The logical explanation I have is this:
- net.pipe:// represents the transport protocol.
- aaa or bbb represents the machine or domain. Since net pipes are local I think aaa and bbb are ignored.
- service/endpoint represents the absolute path where the service is exposed.
So the solution to solve this problem was this:
net.pipe://pipe/aaa/service/endpoint
net.pipe://pipe/bbb/service/endpoint
Now the absolute path /aaa/service/endpoint and /bbb/service/endpoint are different and no exception is generated