0
我有一个使用IErrorHandler接口的WCF错误处理程序。在这个错误处理程序的HandleError方法中,我将错误异常写入日志。这一切工作正常。但是,我还需要写入引发异常的实际消息,并且这不会传递给HandleError方法。IErrorHandler获取原始信息
所以,我一直在寻找的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:33:17
啊,没关系,我是一个涂料!我可以直接使用它,而无需获取身体或任何东西。卫生署! – 2009-09-09 14:42:47
当您想多次发送相同的消息时,您使用的缓冲副本。您必须在首先发送消息之前创建它。在这种情况下,您可以使用ToString()方法将完整的消息作为字符串使用。 – Maurice 2009-09-09 14:47:07