I am using Message Broker with Sql server 2008, and designing an External Activator service to consume messages from my target queue.
My Problem: Cant cast the returned message body from the SqlDataReader object:
"WAITFOR (RECEIVE TOP(1) conversation_handle, message_type_name, message_body FROM [{1}]), TIMEOUT {2}" operation, I cant cast the binary data to XML in C#
SqlBinary MessageBody = reader.GetSqlBinary(2);
MemoryStream memstream = new MemoryStream();
XmlDocument xmlDoc = new XmlDocument();
memstream.Write(MessageBody.Value, 0, MessageBody.Length);
memstream.Position= 0;
//below line Fails With Error:{"Data at the root level is invalid. Line 1, position 1."}
xmlDoc.LoadXml(Encoding.ASCII.GetString(memstream.ToArray()));
memstream.Close();
To prevent poison message I do not use CAST(message_body as XML), Any suggestions would be greatly appreciated.