我有一个服务,它将ReplyTo标头设置为返回地址。 我想:
OperationContext.Current.GetCallbackChannel<IHelloCallback>().RespondHello("tomi");
会自动调用我的客户端,但是我收到了这个例外:
用于在服务器端发送消息 复合双工通道,消息 必须有'Via'属性或 “收件人”标题设置。
我做错了什么或者WCF有点懒惰?
目前,我使用消息检查程序的行为来使这些标题匹配,但它看起来有点hacky ......
ps:我正在使用MSMQ
更新
我已经创建了两个绑定元素,使得msmq可以在codeplex上使用它可以看到完整的示例,但就像我说的,因为这个错误我使用了一个带有消息检查器的行为来设置传入消息的To标头到传入消息的ReplyTo。奇怪的是,我的客户,不需要这种行为,他也可以回调我的服务。
答案 0 :(得分:0)
如果您没有打开可靠的会话,则会发生此错误。
编辑:
这是指向似乎已设法将MSMQ传输用作双工传输的人的链接:
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2006/10/26/8937.aspx
希望有所帮助
答案 1 :(得分:0)
您是否为MSMQ创建了自己的自定义绑定以包含双工通信? wsDualHttpBinding是唯一支持双工通信的WCF“开箱即用”绑定,因而也就是CallbackContract机制。
如果你这样做了 - 请你发布绑定配置吗?
马克