2017-07-15 93 views
0

我正在从asp.net应用程序向msmq发送数据,并且它发送成功,但它在目标msmq处接收消息需要时间(数据包接收但它需要阵子5/10分钟并不总是,但有时)asp.net msmq发送请求显示成功,但在msmq上收到消息迟了

下面是代码,我使用将数据发送到MSMQ

MessageQueue queue = new MessageQueue("FormatName:Direct=TCP:my_ip\private$\msmqname_name"); 
queue.Formatter = new BinaryMessageFormatter(FormatterAssemblyStyle.Simple, FormatterTypeStyle.typesWhenNeeded); 
System.Messaging.Message msg = new System.Messaging.Message(); 
msg.BodyStream = new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes("message")); 
queue.send(msg,"LABEL"); 

注:以上代码将数据发送到队列中。但需要时间(5/10分钟)。这种行为有时并不经常发生。 可能是什么原因?

回答

1

“发送成功”意味着消息在传出队列中成功创建。然后MSMQ必须通过My_IP与机器建立网络连接来传递消息。传出队列的状态显示连接是否建立。

+0

那么背后的原因是什么?任何网络问题?因为我无法找出拖延的原因。并且他们正在归咎于延迟的应用程序编码 – Akshay

+1

您需要收集数据以确定延迟是否在发送应用程序,MSMQ-MSMQ移动跨网络或接收应用程序。如果您启用源日志记录和目标日志记录,则会在MSMQ周围移动消息时显示时间戳数据。加上结束和接收应用程序产生的时间戳,图片应该变得更清晰。 Performance Monitor对于以图形方式显示队列使用情况非常有用。网络跟踪对机器之间的问题很有用, –