IErrorHandler获取原始消息

时间:2009-09-09 14:15:05

标签: .net wcf

我有一个使用IErrorHandler接口的WCF错误处理程序。在此错误处理程序的HandleError方法中,我将错误异常写入日志。一切正常。但是,我还要求同时编写将异常引发到日志的实际消息,这不会传递给HandleError方法。

所以,我一直在查看OperationContext,看看是否有助于做类似以下的事情:

MessageBuffer buffer = OperationContext.Current.RequestContext.RequestMessage.CreateBufferedCopy(int.MaxValue);

Message message = buffer.CreateMessage();
using (XmlDictionaryReader reader = message.GetReaderAtBodyContents())
{
   string content = reader.ReadContentAsString();
}

然而,我一直得到“这条消息不能支持操作,因为它已被复制”,因为我认为该消息先前已被框架复制过了?无论如何,我现在不知道如何实现所需的功能。有没有人有任何建议?

提前致谢

1 个答案:

答案 0 :(得分:1)

OperationContext.Current.RequestContext.RequestMessage指向实际消息,因此您可以使用它。