Criar uma cópia em buffer da mensagem do WCF

Eu tenho o seguinte código em um inspetor de mensagem para examinar o corpo da resposta. Eu entendo que a mensagem do WCF só pode ser lida uma vez, então eu crio uma cópia primeiro. Mas com o seguinte código eu ainda recebo o erro "Esta mensagem não pode suportar a operação porque foi lida." ... Estou faltando alguma coisa?

<code>        MessageBuffer buffer = message.CreateBufferedCopy(Int32.MaxValue);
        Message copy = buffer.CreateMessage();
        message = copy;

        XmlDictionaryReader bodyReader = copy.GetReaderAtBodyContents();
        bodyReader.ReadStartElement("Binary");
        byte[] bodyBytes = bodyReader.ReadContentAsBase64();
        string messageBody = Encoding.UTF8.GetString(bodyBytes);

        return messageBody;
</code>

Também não me sinto confortável usando Int23.MaxValue lá. O que seria um tamanho razoável?

questionAnswers(1)

yourAnswerToTheQuestion