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

在WCF中通过命名管道传输SOAP消息,wcf,qt,soap,ipc,Wcf,Qt,Soap,Ipc,我担心我在这个问题上可能表现出我的无知,但接下来 我想使用WCF实现.NET应用程序和用Qt编写的第三方应用程序之间的进程间通信。Qt应用程序有一个插件体系结构,如果我选择的话,它可以用来引导一些.NET类在两端干净地处理WCF,但我更愿意让代码库保持原生状态,因此我想办法确保无论我用WCF发送什么,我都可以使用Qt中可用的类在另一端重新组装 Qt有一个SOAP消息类,所以我认为最好的解决方案是发送SOAP消息并从QLocalSocket中提取它们,这是最接近我们已经破解过的解决方案。问题是,是

我担心我在这个问题上可能表现出我的无知,但接下来

我想使用WCF实现.NET应用程序和用Qt编写的第三方应用程序之间的进程间通信。Qt应用程序有一个插件体系结构,如果我选择的话,它可以用来引导一些.NET类在两端干净地处理WCF,但我更愿意让代码库保持原生状态,因此我想办法确保无论我用WCF发送什么,我都可以使用Qt中可用的类在另一端重新组装

Qt有一个SOAP消息类,所以我认为最好的解决方案是发送SOAP消息并从QLocalSocket中提取它们,这是最接近我们已经破解过的解决方案。问题是,是否有可能强制WCF通过NetNamedPipeBinding将消息编码为SOAP,如果有,这样做是否明智

在这一点上,我感到相当谨慎,我的问题可能没有完全意义,因为我对所涉及的技术的理解不稳定。如果是这种情况,请花时间解释原因,而不是仅仅说“不”

编辑1:我认为更新是必要的,因为我已经调查了一些,应该报告我的发现


首先,我发现Qt是一头猪。事实证明,我提到的QtSoapMessage类在当前版本中不存在,只能作为售后源代码包提供,您必须自己编译。我花了好几个小时的时间在谷歌上搜索,才发现为什么这不起作用。Qt文档非常糟糕,Qt Creator极端违反直觉,我几乎对它失去了耐心,所以还没有进一步研究这个想法。此外,我如何将套接字数据传递到soap消息构造函数中并不清楚,soap消息构造函数接受QDomDocument,而用于从套接字读取XML的API使用QXmlStreamReader或类似的东西。它们之间似乎没有任何转换。

实际上,你的问题与你认为的不同

默认情况下,WCF将通过NetNamedPipeBinding交换SOAP消息

但是,对于事务流、消息帧和编码,消息交换是在一些Microsoft专有协议上分层的,这意味着,如果在Qt端直接从QLocalSocket获取字节流,那么在能够访问SOAP信息集本身之前,您将需要做大量的工作来实现这些底层协议

可以将NetNamedPipe绑定配置为删除其中一些协议层,但不是全部协议层,例如,帧协议将始终存在


你可能会喜欢阅读我的博客。

实际上,你的问题与你认为的不同

默认情况下,WCF将通过NetNamedPipeBinding交换SOAP消息

但是,对于事务流、消息帧和编码,消息交换是在一些Microsoft专有协议上分层的,这意味着,如果在Qt端直接从QLocalSocket获取字节流,那么在能够访问SOAP信息集本身之前,您将需要做大量的工作来实现这些底层协议

可以将NetNamedPipe绑定配置为删除其中一些协议层,但不是全部协议层,例如,帧协议将始终存在


你可能想读我的博客。

哇,好的。这是一个非常好的信息,因为它告诉我SOAP交换比我预想的要复杂得多。我想象中使用的来自Qt的类是,可能因为SOAP是一个标准,所以它可以无缝地解释?我得做些精细的实验。非常感谢您抽出时间。@Tom:不客气。。。特别是如果你想点击投票向上箭头和/或接受:-哇,好的。这是一个非常好的信息,因为它告诉我SOAP交换比我预想的要复杂得多。我想象中使用的来自Qt的类是,可能因为SOAP是一个标准,所以它可以无缝地解释?我得做些精细的实验。非常感谢您抽出时间。@Tom:不客气。。。特别是如果您想单击小的向上投票箭头和/或接受:-