我们一直存在问题,即MSMQ的消息写入非常慢。我们的队列在Windows Server 2008 SP2上。该队列是一个公共队列,在“servername \ queuename”处寻址。
将消息发送到队列的代码是
MessageQueue queue = new MessageQueue(Settings.Default.DefaultDestinationQueue);
queue.Formatter = new BinaryMessageFormatter();
queue.Send(message);
我们尝试发送的消息只是“PublishMessage”,如下所示:
[Serializable]
public class PublishMessage {
public int EntryId {get; set; }
}
我们看到邮件实际到达队列,但是之前和之后的日志显示每条邮件通常需要超过1分钟。
目前,我们无法看到队列配置有任何问题,但不是排队专家 - 这是此应用程序的第一个补充。有人有什么想法吗?
编辑:我们的服务器正在运行SP 2(不是我最初声明的SP1)。直接在托管队列的计算机上运行实例很快,其他任何都不是。
注意:在https://serverfault.com/questions/272242/msmq-write-taking-1-minute
上反映此内容答案 0 :(得分:1)
我们的问题结果是服务器无法正确验证的基础架构问题。我们的系统管理员最终通过重新配置托管队列的服务器来理顺它。
答案 1 :(得分:0)
队列是事务性的还是非事务性的?尝试切换此设置,看看是否有相同的行为。
为队列分配了多少空间?尝试增加空间,和/或将其存储移动到不同的驱动器(在不同的物理主轴上)。
系统队列中是否有消息?检查系统队列中的消息。另外,尝试清除系统队列中的所有消息并重新运行。