【问题标题】:IDispatchMessageInspector to log plain-text soap messages?IDispatchMessageInspector 记录纯文本肥皂消息?
【发布时间】:2010-01-06 16:49:49
【问题描述】:

我编写了一个 WCF IDispatchMessageInspector,因此我可以记录传入和传出消息。但我不确定如何获取格式良好的 XML 字符串进行记录。

我的代码如下所示:

        public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
        request = buffer.CreateMessage();
        Log("Received", request.ToString();
        return null;
    }

此日志记录的结​​果包括诸如“& lt;”之类的内容。以及某种二进制编码的数据。

如何获得看起来像标准soap XML 文档的内容?我知道这应该很明显,但我太密集了,无法弄清楚。

谢谢。

丹

【问题讨论】:

    标签: c# xml wcf soap


    【解决方案1】:

    您没有使用带有 XmlTextWriter 输出的 .Net 内置跟踪功能是否有任何具体原因?

    如果没有具体原因,请看http://msdn.microsoft.com/en-us/library/ms730064.aspx

    希望对你有帮助,

    【讨论】:

      【解决方案2】:

      这是一个工作示例

      public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
      {
          MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
          request = buffer.CreateMessage();
      
          XDocument doc;
      
          using (MemoryStream ms = new MemoryStream())
          {
              XmlWriter writer = XmlWriter.Create(ms);
              request.WriteMessage(writer);
              writer.Flush();
              ms.Position = 0;
      
              doc = XDocument.Load(ms);
          }
      
          if (SaveLog != null)
          {
              LogSaveFileEventArgs logEventArgs = new LogSaveFileEventArgs(doc, false);
              SaveLog(this, logEventArgs);
          }
      
          request = buffer.CreateMessage();
      
          //The return value can be any object that you want to use for correlation purposes;
          //it is returned to you as the correlationState parameter in the BeforeSendReply method.
          return null;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-23
        • 2017-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        相关资源
        最近更新 更多