wcf - 从 VB6 到 WCF 的命名管道

标签 wcf vb6 named-pipes

我可以让 VB6 应用程序通过 WCF 端点调用与用 C# 编写的服务的命名管道连接吗?

VB6 项目利用命名管道与用 C++ 编写的服务进行通信。我想将 C++ 服务转换为 C#(最好是 .NET 4.0)。

VB6 项目使用 Win32 调用 CallNamedPipes向服务器发送消息。消息的有效负载是由以下结构组成的字符串。

 [command][data length][data if approprate to the message]

我目前无法转换应用程序的 VB6 端,但我想知道是否可以依靠 CallNamedPipe 函数向新的 WCF 服务发送消息,以及它们是否可以很好地协同工作。我会看到 WCF 服务的合约端基本上是一种接受我将解析的字符串的方法。

此外,由于 CallNamedPipes 可以接收 outputBuffer 参数中的返回数据,WCF 是否能够适应这一点?契约(Contract)是这样的吗...

string DoSomething(string command)

感谢您的帮助!

布莱恩

最佳答案

WCF 非常好,但在通信 channel 的两端使用 WCF 时才真正发挥作用。尝试将遗留代码连接到 WCF 服务是很棘手的。

让您的 C# 服务使用 NamedPipeServerStream 可能会更容易直接地。这将使您能够完全控制连接和传输的处理方式。话虽如此,没有什么可以阻止您同时执行这两项操作(在同一程序中实现自定义 NamedPipeServerStream channel ,以及公开一个或多个 WCF 端点)。如果您也想升级客户端,这将提供一种继续前进的方法。

关于wcf - 从 VB6 到 WCF 的命名管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761698/

相关文章:

wcf - 在不使用 WCF 的情况下调用 WCF 服务 - 好的还是坏的做法?

vb6 - VB 6 中的全局异常处理程序

c++ - 命名管道无法第二次连接

c - 如何写入命名管道而不是等待读取管道

shell - 命名管道(fifo)有多贵?

.net - WCF SOAP 操作

c# - WCF Restful 服务 - 在一个请求中发送包含多个字段的文件

.net - WCF - 测试引用的第 3 方服务

VB6如何获取控件数组中选中/选中的控件

vb6 - VB6 中 "Out of stack space"的可能原因