views:

97

answers:

0

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.