2010-08-04 2 views
1

일부 저장소에 WCF 메시지를 저장하고 나중에 다시 읽으려면 해당 메시지를 읽으 려합니다.WCF 메시지 저장 및 재생

첨부 일부 코드 부품 :
private void WriteMessage(Message message, string path)
{
FileStream fileStream = new FileStream(path, FileMode.Create);

using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(fileStream))
{
using (XmlDictionaryReader reader = message.GetReaderAtBodyContents())
{
message.WriteBodyContents(writer);
writer.Flush();
}
}
}

private Message ReadMessage(string path)
{
using (FileStream fs = File.OpenRead(path))
{
using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(fs, XmlDictionaryReaderQuotas.Max))
{
fs.Flush();
Message message = Message.CreateMessage(reader, int.MaxValue, messageVersion);
return message.CreateBufferedCopy(int.MaxValue).CreateMessage();
}
}
}

문제가있어 좋아한다으로 메시지를 저장하기 전에 Message.ToString는(), 전체 메시지를 메시지 문자열을 반환하지만, 그것을 읽은 후, 있으며, toString()는 시체를 "... 스트림 ..."으로 표시하고 그게 전부입니다.

가 있습니다 :-)


많은 감사를 advaice하십시오 메시지를 다른 메시지에 싸여로 "WriteMessage"에서 본체 만 읽고 기록됩니다.

+0

BinaryReader/Writer 대신 CreateTextReader/Writer를 사용할 때 메시지를 잘 읽고 쓸 수 있습니다. (나는 BinaryWriter를 사용하여 어떻게 쓰는지 볼 수 없다.) – Tamir

답변

1

Charles을 보시면 세션을 저장 한 다음 다시 재생하거나 개별 요청을 편집하고 호스트 이름을 변경할 수 있습니다. 테스트 세션을 생성하고 저장 한 다음 유용한 부하 테스트를 생성하는 봇.

유일한 단점은 평가판이 30 분 동안 만 작동한다는 것입니다.하지만이 기능을 항상 사용하는 경우 전체 라이센스 비용으로 50 달러의 가치가 있습니다.

+0

이것은 좋을지 모르겠지만 현재로서는 써드 파티 툴을 사용하는 것이 옵션이 아니다 :-) 어쨌든 덕분이다. – Tamir