我有一个使用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();
}
然而,我一直得到“这条消息不能支持操作,因为它已被复制”,因为我认为该消息先前已被框架复制过了?无论如何,我现在不知道如何实现所需的功能。有没有人有任何建议?
提前致谢
答案 0 :(得分:1)
OperationContext.Current.RequestContext.RequestMessage指向实际消息,因此您可以使用它。