我一直在使用WCF路由并实现了自定义消息过滤器
public override bool Match(Message message)
{
MessageBuffer buffer = message.CreateBufferedCopy(Int32.MaxValue);
var msg = buffer.CreateMessage();
XmlDictionaryReader reader = msg.GetReaderAtBodyContents();
string paramsXml = reader.ReadOuterXml();
....
....
return serviceType.Equals(service);
}
我收到以下异常“此消息无法支持该操作,因为它已被复制。”虽然我正在创建一个缓冲副本。任何人都可以帮我吗?
答案 0 :(得分:3)
这显然是VS调试器的问题。肥皂ui或其他客户不会发生这种情况。希望这对那些在同样问题上挣扎的人有用。
答案 1 :(得分:2)
您需要在路由行为
中设置routeOnHeadersOnly = false然后执行采用消息缓冲区的操作