wcf - 如何使 WCF 命名管道地址等于 WinApi 管道地址?

标签 wcf winapi url named-pipes

我注意到WCF的命名管道地址

net.pipe://localhost/mynamedpipe

和 Windows API 的

\\.\pipe\mynamedpipe

不要碰撞。这是为什么?我怎样才能让它们指向同一个管道?

最佳答案

没有记录在案的方法。经过几次测试,我得出以下结论:

如果您有一个 WCF 服务器和一个 Win32 C++ 客户端,最后一个将把第一个地址视为 UUID,格式如下:

12345678-1234-1234-1234-123456789abc

而且这个 UUID 看起来是随机的,因为每次启动服务器时它都会针对相同的 WCF 地址发生变化。

我不知道 WCF 客户端是否可以看到具有 GUID 格式地址的 Win32 C++ 命名管道服务器,但我敢肯定,如果可以的话,服务器将不得不实现由WCF.

此类协议(protocol)的文档作为对 my previous question on this subject. 的回答提供

编辑 进一步的研究表明管道地址存储在 FileMapping 中。该入口地址又是 NetNamedPipe 地址规范化版本的 base64 编码哈希。

关于wcf - 如何使 WCF 命名管道地址等于 WinApi 管道地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3789807/

相关文章:

.net - 如何通过 WCF 暴露对象?

c# - 分层架构中的 Entity Framework ?

WCF 数据服务 : How to avoid the __metadata members

windows - Windows 快捷方式如何知道重命名它所引用的文件?

.htaccess - 使用原始的多个部分重写 url

java - 在 Java 中从 URL 读取/写入内容的首选方法是什么

C#、WCF、何时重用客户端代理

c# - 从 WM_SIZE 消息更改表单大小

c++ - unsigned int 类型的函数返回负数

Django + uWSGI + nginx url 映射