在WCF中通过命名管道传输SOAP消息

| 我担心我可能对这个问题表现出无知,但是这里... 我想使用WCF来实现.NET应用程序和用Qt编写的第三方应用程序之间的进程间通信。 Qt应用程序具有一个插件体系结构,如果我选择的话,可以用来引导一些.NET类以在两端干净地处理WCF,但是我宁愿保持代码库本机,因此我在考虑方法为了确保无论我用WCF传递什么信息,我都可以使用Qt中可用的类在另一端进行重组。 Qt有一个SOAP消息类,所以我想到了更可取的解决方案-发送SOAP消息并从QLocalSocket中提取它们,而该解决方案是我们已经一起破解过的最接近的解决方案。问题是,是否可以强制WCF通过NetNamedPipeBinding将消息编码为SOAP,如果这样,这样做是否明智? 在这一点上,我感到非常警惕,因为我对所涉及的技术缺乏了解,因此我的问题可能无法完全解决。如果是这种情况,请花点时间解释原因,而不是只说“不”。 编辑#1:我认为有必要进行更新,因为我已经进行了一些调查并应报告我的发现。 首先,我发现Qt是一头猪。事实证明,我提到的QtSoapMessage类在当前版本中不存在,并且仅作为您必须自己编译的汽配源包提供。我花了许多小时来搜寻,以找出为什么这行不通。 Qt文档简直令人恐惧,Qt Creator在极端情况下是违反直觉的,而且我几乎对它失去了耐心,因此至今没有进一步追求这一想法。此外,将套接字数据传递到带有QDomDocument的soap消息构造函数中的方式到底有多准确,而从套接字读取XML的API使用QXmlStreamReader或诸如此类,这并不明显。它们之间似乎没有任何转换。     
已邀请:
实际上,您遇到的问题与您认为的问题不同。 默认情况下,WCF将通过NetNamedPipeBinding交换SOAP消息。 但是,消息交换是基于一些Microsoft专有协议进行的,用于事务流,消息帧和编码,这意味着如果在Qt端直接从QLocalSocket提取字节流,您将需要完成很多工作这些基础协议,然后您才能了解SOAP信息集本身。 可以配置NetNamedPipe绑定以删除其中一些协议层,但不能全部删除-例如,框架协议将始终存在。 您可能想阅读我的博客以获取更多详细信息。     

要回复问题请先登录注册