Хранить и воспроизводить сообщения WCF - PullRequest
1 голос
/ 04 августа 2010

Я хочу сохранить сообщения WCF в некотором хранилище и прочитать их позже, чтобы «воспроизвести» их снова.

Прикреплены некоторые части кода:
private void WriteMessage(Message message, string path)<br> {<br> FileStream fileStream = new FileStream(path, FileMode.Create); </p> <p>using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(fileStream))<br> {<br> using (XmlDictionaryReader reader = message.GetReaderAtBodyContents())<br> {<br> message.WriteBodyContents(writer);<br> writer.Flush();<br> }<br> }<br> } </p> <p>private Message ReadMessage(string path)<br> {<br> using (FileStream fs = File.OpenRead(path))<br> {<br> using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(fs, XmlDictionaryReaderQuotas.Max))<br> {<br> fs.Flush();<br> Message message = Message.CreateMessage(reader, int.MaxValue, messageVersion);<br> return message.CreateBufferedCopy(int.MaxValue).CreateMessage();<br> }<br> }<br> }<br>

Проблема в том, что перед сохранением сообщения Message.ToString () возвращает строку сообщения, как и должно быть, все сообщение,но после прочтения ToString () показывает тело как "... stream ..." и все.

пожалуйста, советуйте
Большое спасибо: -)

Обратите внимание: в «WriteMessage» только тело читается и записывается, поскольку сообщение помещается в другое сообщение.

1 Ответ

1 голос
/ 04 августа 2010

Посмотрите на Charles , вы можете легко сохранить сеанс, а затем воспроизвести его снова или даже отредактировать отдельные запросы и изменить имя хоста и т. Д. Мы используем его для генерации тестовых сеансов, их сохранения и затем повторите сеансы с ботами, чтобы сгенерировать полезный нагрузочный тест.

Единственным недостатком является то, что ознакомительная версия работает только в течение 30 минут, но, эй, если вы используете ее все время, это стоит 50 баксов полной стоимости лицензии.

...