C# Message.Body-无法反序列化作为参数传递的消息。无法识别序列化格式
在创建新的“事务性”队列时,我首先需要查找是否存在同名的“非事务性”消息队列。如果需要,我需要将消息从旧队列复制到新的事务队列 要实现这一点(当我找到同名的旧队列时): 1.我正在创建一个临时队列(我发现它在默认情况下被创建为事务性队列)。 2.我正在循环浏览来自旧队列的消息,并将它们发送到新队列。 3.删除旧队列 4.创建新的事务队列。 5.循环处理来自临时事务队列的消息并将其发送到新队列。 6.删除临时队列 消息从旧队列发送到新队列,没有任何异常。但是,当我尝试将消息正文作为message.body读取时 Body='message.Body'抛出了一个 类型异常 “System.InvalidOperationException” 无法反序列化传递的消息 作为论据。无法识别 序列化格式 我如何达到上述要求,我的方法会出现什么问题 我对MSMQ很陌生。 (使用Windows XP、Visual Studio 2008、.NET 2.0)您不会“循环浏览旧队列中的消息并将其发送到新队列”。 而是使用旧邮件中的数据创建新邮件 因此,如果你从一个“好”的信息开始,并不意味着你最终会得到同样的信息。 重要信息是:C# Message.Body-无法反序列化作为参数传递的消息。无法识别序列化格式,c#,msmq,C#,Msmq,在创建新的“事务性”队列时,我首先需要查找是否存在同名的“非事务性”消息队列。如果需要,我需要将消息从旧队列复制到新的事务队列 要实现这一点(当我找到同名的旧队列时): 1.我正在创建一个临时队列(我发现它在默认情况下被创建为事务性队列)。 2.我正在循环浏览来自旧队列的消息,并将它们发送到新队列。 3.删除旧队列 4.创建新的事务队列。 5.循环处理来自临时事务队列的消息并将其发送到新队列。 6.删除临时队列 消息从旧队列发送到新队列,没有任何异常。但是,当我尝试将消息正文作为message.
约翰·布雷克韦尔(John Breakwell)我非常感谢你对这个问题的分析,我也投了赞成票,因为这对面临这个问题的人来说是有用的。你提出的所有问题在原问题中提到的情况下都非常有效。然而,即使在处理了所有这些事情之后,不知何故,我有时也会遇到同样的例外,但并非总是如此!这是一个消息体良好但引发异常的问题。或者消息正文已损坏,因此无法读取?从队列或临时队列读取消息时是否会出现异常?