关于消息队列,出现异常System.NullReferenceException: 未将对象引用设置到对象的实例
关于消息队列,出现异常System.NullReferenceException: 未将对象引用设置到对象的实例
/// <summary>
/// 接受网络连接消息队列 并且更改xml
/// </summary>
public void StartReciveMessage()
{
try
{
MessageQueue MqReceive = MqServerOper.GetServerMqReciver();
MqReceive.Formatter = new System.Messaging.BinaryMessageFormatter();
while (true)
{
lock (locker)
{
//接受消息
System.Messaging.Message msg = MqReceive.Receive();
//消息描述信息
string strTitle = msg.Label.ToString();
//消息内容
string strBody = msg.Body.ToString();
XmlNodeList list = doc.SelectSingleNode("main").SelectSingleNode("rooms").ChildNodes;
foreach (XmlNode node in list)
{
if (node.Attributes["IP"].InnerText == strBody)
{
//更改网络状态为1 1是连接,0是断网
node.Attributes["OnlineState"].InnerText = "1";
//更改读取时间
node.Attributes["LastTime"].InnerText = DateTime.Now.ToString();
//保存文件
doc.Save("XML/RoomOnlineState.xml");
//进程停止0.1秒
System.Threading.Thread.Sleep(100);
break;
}
}
}
}
}
catch(Exception ex)
{
Log.Writelog("接受网络连接消息队列出现异常:"+ex.ToString());
}
}
跟踪是在这句:MqReceive.Formatter = new System.Messaging.BinaryMessageFormatter();
出现异常:System.NullReferenceException: 未将对象引用设置到对象的实例。
但是我换台机子测试此代码就不出现了,我这怎么回事,怎么解决?