【问题标题】:Why WCF doesn't automatically affect the To header on outgoing message with the ReplyTo of the incoming message?为什么 WCF 不会使用传入消息的回复自动影响传出消息上的 To 标头?
【发布时间】:2009-08-02 22:36:14
【问题描述】:

我有一个服务,它发送一条消息,其中 ReplyTo 标头设置为返回地址。 我以为:

OperationContext.Current.GetCallbackChannel<IHelloCallback>().RespondHello("tomi");

将自动调用我的客户端,但我收到此异常:

用于在服务器端发送消息 复合双工通道,消息 必须具有“Via”属性或 'To' 标头集。

是我做错了什么还是 WCF 有点懒?

目前,我使用消息检查器的行为来使这些标头匹配,但这似乎有点 hacky...

ps:我正在使用 MSMQ

更新

我创建了两个绑定元素以使 msmq over duplex 工作它在 codeplex 上可用你可以看到整个示例,但就像我说的,由于这个错误,我使用消息检查器的行为来设置 To传出消息的标头到传入消息的ReplyTo。奇怪的是我的客户不需要这种行为,他也可以回调我的服务。

【问题讨论】:

    标签: .net wcf msmq duplex msmqbinding


    【解决方案1】:

    您是否为 MSMQ 创建了自己的自定义绑定以包括双工通信? wsDualHttpBinding 是唯一支持双工通信和 CallbackContract 机制的 WCF“开箱即用”绑定。

    如果你这样做了 - 你能发布绑定配置吗?

    马克

    【讨论】:

    • 是的,我创建了两个绑定元素以使 msmq over duplex 在这里工作:duplexmsmq.codeplex.com 您可以看到整个示例,但就像我说的,由于当前出现此错误,我使用了使用消息检查器将传出消息的 To 标头设置为传入消息的 ReplyTo 的行为。奇怪的是,我的客户不需要这种行为,他也可以回调我的服务。
    【解决方案2】:

    如果您没有打开可靠会话,可能会发生此错误。

    编辑:

    这是一个似乎已经设法将 MSMQ 传输用作双工传输的人的链接:

    http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2006/10/26/8937.aspx

    希望对你有帮助

    【讨论】:

    • 与 MSMQ 消息传递的可靠会话毫无意义,因为消息传递用于两个不一定同时运行的服务,但就像 MSDN 所说的 msdn.microsoft.com/en-us/library/ms733136.aspx,“WCF 支持端点之间的可靠会话,既活跃又活跃”。所以我不会使用这个解决方案。
    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多