我正在编写一个示例控制台服务主机,我想插入 WCF 堆栈以便能够在新消息到达时将消息打印到控制台,即使它目前不会被服务处理(因为服务正在工作以前的电话)。这是基于我的假设,即到达的消息由 WCF 排队,对吗?
此外,如果这很重要,我正在使用 netTcpBinding。
我正在编写一个示例控制台服务主机,我想插入 WCF 堆栈以便能够在新消息到达时将消息打印到控制台,即使它目前不会被服务处理(因为服务正在工作以前的电话)。这是基于我的假设,即到达的消息由 WCF 排队,对吗?
此外,如果这很重要,我正在使用 netTcpBinding。
您可能必须为此编写一个自定义频道。查看WCF 频道迷你书
您可以编写自定义频道并将其插入到频道堆栈中的任何位置。排队发生在 ChannelListeners 中,它位于每个通道之间:
ChannelListener_1 -> Channel_1 -> ChannelListener_2 -> Channel_2 -> 等等。
因此,如果您要插入自己的频道侦听器/频道,您可以挂接到您需要的任何流程部分。但是请注意,消息内容可能无法读取,直到它深入堆栈并被解密。