我正在编写一个示例控制台服务主机,我想插入WCF堆栈,以便在新消息到达时能够将消息打印到控制台,即使此时服务不会处理它(因为服务正在以前的电话上工作)。 这是基于我的假设,即到达的消息由WCF排队,这是正确的吗?

此外,如果这很重要,我正在使用netTcpBinding。

有帮助吗?

解决方案

您可以编写自定义通道,并将其插入到通道堆栈中的任何位置。排队发生在ChannelListeners中,它位于每个频道之间:

ChannelListener_1 - > Channel_1 - > ChannelListener_2 - >频道_2 - >等

因此,如果您要插入自己的频道监听器/频道,您可以挂钩到您需要的过程的任何部分。但请注意,消息内容可能无法读取,直到它进一步向下堆栈并被解密。

其他提示

您可能需要为此编写自定义渠道。查看 WCF频道迷你书

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top