I noticed that WCF’s named pipe address
net.pipe://localhost/mynamedpipe
and Windows API’s
\\.\pipe\mynamedpipe
don’t collide. Why is that? How can I make them point to the same pipe?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
There is no documented way of doing that. After a few tests I came to the following conclusions:
If you have a WCF server and a Win32 C++ client, the last one will see the first one address as a UUID in the following format:
12345678-1234-1234-1234-123456789abc
And this UUID seems random, since it changes for the same WCF address every time the server is started.
I don’t know if a Win32 C++ named pipe server with a GUID format address will be visible from a WCF client, but I’m sure that if it does, the server will have to implement the poorly documented protocol used by WCF.
The documentation for such protocol is provided as an answer to my previous question on this subject.
EDIT Further research revealed that the pipe address is stored in the FileMapping. This entry address in its turn is a base64 encoded hash of a normalized version of the NetNamedPipe address.