以原始格式读取 MSMQ 消息 XML
Reading MSMQ Messages in Raw XML
我正在尝试读取 MSMQ 消息的原始 XML 并将其保存到 XML 文件中。例如,正文为:
的 MSMQ 消息
<?xml version="1.0"?>
<string>Hello World! I am message #4</string>
我想提取那些 xml 行并将它们保存到文件 message.xml.
我收到的消息如下所示:
msg = queue.PeekById(enumerator.Current.Id);
msg.Formatter = new XmlMessageFormatter(new String[] { "System.String,mscorlib" });
System.IO.File.WriteAllText(dirPath + @"\" + msg.Label.Replace(@"\","").Replace(@".","") + enumerator.Current.Id.Replace(@"\","").Replace(@".","") + "_" + DateTime.Now.ToString("MMddyyyyhhmmss") + ".xml", msg.Body.ToString());
queue.ReceiveById(enumerator.Current.Id);
logEntry("*-Received Message with Id " + msg.Id + " and Label " + msg.Label);
但这只会提取文本 "Hello World! I am message #4",我想要完整的 xml。
试试这个:
msg.Formatter = new ActiveXMessageFormatter();
reader = new StreamReader(msg.BodyStream);
var msgBody = reader.ReadToEnd(); // This gets the actual message as text
格式化程序不需要对称 - 您可以在队列的两端使用不同的格式化程序。
从这里 - http://andypiper.co.uk/2006/03/31/receiving-plain-text-messages-in-msmq/
我正在尝试读取 MSMQ 消息的原始 XML 并将其保存到 XML 文件中。例如,正文为:
的 MSMQ 消息<?xml version="1.0"?>
<string>Hello World! I am message #4</string>
我想提取那些 xml 行并将它们保存到文件 message.xml.
我收到的消息如下所示:
msg = queue.PeekById(enumerator.Current.Id);
msg.Formatter = new XmlMessageFormatter(new String[] { "System.String,mscorlib" });
System.IO.File.WriteAllText(dirPath + @"\" + msg.Label.Replace(@"\","").Replace(@".","") + enumerator.Current.Id.Replace(@"\","").Replace(@".","") + "_" + DateTime.Now.ToString("MMddyyyyhhmmss") + ".xml", msg.Body.ToString());
queue.ReceiveById(enumerator.Current.Id);
logEntry("*-Received Message with Id " + msg.Id + " and Label " + msg.Label);
但这只会提取文本 "Hello World! I am message #4",我想要完整的 xml。
试试这个:
msg.Formatter = new ActiveXMessageFormatter();
reader = new StreamReader(msg.BodyStream);
var msgBody = reader.ReadToEnd(); // This gets the actual message as text
格式化程序不需要对称 - 您可以在队列的两端使用不同的格式化程序。
从这里 - http://andypiper.co.uk/2006/03/31/receiving-plain-text-messages-in-msmq/