Utwórz buforowaną kopię wiadomości WCF
Mam następujący kod w inspektorze wiadomości, aby sprawdzić treść odpowiedzi. Rozumiem, że wiadomość WCF może być odczytana tylko raz, więc najpierw tworzę kopię. Ale z następującym kodem nadal pojawia się błąd „Ta wiadomość nie obsługuje operacji, ponieważ została przeczytana.” ... Czy czegoś brakuje?
<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>
Również nie czuję się komfortowo używając tam Int23.MaxValue. Jaki byłby rozsądny rozmiar?