【问题标题】:Read the soap message body contents in WCF custom message filter读取 WCF 自定义消息过滤器中的肥皂消息正文内容
【发布时间】:2011-07-22 11:16:01
【问题描述】:

我一直在使用 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);
    }

我收到以下异常“此消息无法支持该操作,因为它已被复制。”尽管我正在创建一个缓冲副本。谁能帮我解决这个问题?

【问题讨论】:

    标签: wcf routing


    【解决方案1】:

    这显然是 VS 调试器的问题。肥皂用户界面或其他客户端不会发生。希望这对遇到同样问题的人有用。

    【讨论】:

      【解决方案2】:

      需要在路由行为中设置 routeOnHeadersOnly = false

      然后你实现获取消息缓冲区的操作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        • 2012-07-17
        • 2017-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多