代码之家  ›  专栏  ›  技术社区  ›  Tamir

存储和重播WCF消息

  •  1
  • Tamir  · 技术社区  · 15 年前

    我想将WCF消息存储在一些存储中,稍后再阅读它们,以便再次“重放”它们。

    附加了一些代码部分:
    <代码> private void writemessage(message message,string path)
    {BR/> filestream filestream=new filestream(path,filemode.create);

    使用(xmlDictionaryWriter=xmlDictionaryWriter.CreateBinaryWriter(filestream))
    {BR/> 使用(xmlDictionaryReader reader=message.getReaderBodyContents())
    {BR/> message.writeBodyContents(writer);
    writer.flush();


    }

    私有消息自述消息(字符串路径)
    {BR/> 使用(filestream fs=file.openread(path))
    {BR/> 使用(xmlDictionaryReader reader=xmlDictionaryReader.CreateBinaryReader(fs,xmlDictionaryReaderQuotas.max))
    {BR/> fs.flush();
    message message=message.createMessage(reader,int.maxValue,messageVersion);
    返回message.createBufacturedCopy(int.maxValue).createMessage();



    问题是,在存储消息之前,message.toString()会按它所希望的方式返回整个消息的消息字符串,但在读取消息之后,toString()会将正文显示为“…stream…“就这样。

    请宣传
    多谢:—)

    请注意:在“writemessage”中,只有当消息被包装在另一条消息中时,才会读取和写入正文。 专用void writemessage(消息消息,字符串路径)
    {
    filestream filestream=新的filestream(path,filemode.create);

    使用(xmlDictionaryWriter=xmlDictionaryWriter.CreateBinaryWriter(filestream))
    {
    使用(xmlDictionaryReader reader=message.getReaderBodyContents())
    {
    message.writeBodyContents(编写器);
    作家FrHuSE();
    }
    }
    }

    私人消息自述消息(字符串路径)
    {
    使用(filestream fs=file.openread(path))
    {
    使用(xmlDictionaryReader reader=xmlDictionaryReader.CreateBinaryReader(fs,xmlDictionaryReaderQuotas.max))
    {
    FSH();
    message message=message.createMessage(reader,int.maxValue,messageVersion);
    返回message.createBufferedCopy(int.maxValue).createMessage();
    }
    }
    }

    问题是,在存储消息之前,message.toString()会按它所希望的方式返回整个消息的消息字符串,但在读取消息之后,toString()会将正文显示为“…流……”就这样。

    请教
    非常感谢:

    请注意:在“writemessage”中,只有当消息包装在另一条消息中时,才会读取和写入正文。

    1 回复  |  直到 15 年前
        1
  •  1
  •   theburningmonk    15 年前

    看一看 Charles 您可以轻松地存储一个会话,然后再次播放它,甚至编辑单个请求和更改主机名等。我们使用它来生成测试会话,保存它们,然后使用bots重播会话,以生成有用的负载测试。

    唯一的缺点是评估版只能工作30分钟,但是嘿,如果你一直使用它,那么它很值得50美元的完整许可证成本。

    推荐文章