我有一个使用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();
}然而,我一直收到“此消息无法支持操作,因为它已被复制”,因为我假设该消息之前已被框架复制到某处?无论如何,我现在对如何实现所需的功能感到困惑。有人有什么建议吗?
提前感谢
发布于 2009-09-09 14:28:17
OperationContext.Current.RequestContext.RequestMessage指向实际的消息,所以您可以直接使用它。
https://stackoverflow.com/questions/1399971
复制相似问题