写入MSMQ的频率是否有限制?

时间:2018-06-22 18:28:44

标签: c# .net msmq

我的程序运行很长时间,它将一些状态消息写入msmq。我还具有一个配置值,该值限制了长时间运行的过程所生成的消息数量。当我使用限制并且仅将生成的消息的1/50写入队列时,代码工作正常。  当我调用MSMQEnqueue的频率增加时,我的代码因访问冲突异常而崩溃。

例外是:

First-chance exception at 0x000007fef2096a15 in w3wp.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

任何人都知道限制可能是什么吗?

// Retrieves or Creates private queues with the key and sends a message to it
        public void MSMQEnqueue(string sKey, string sMessage)
        {
            MessageQueue queue = GetOrCreateQueue(sKey);
            try
            {
                Message message = new Message();
                message.Body = sMessage;

                queue.Purge();
                queue.Send(message);
            }

            finally {
                queue.Dispose();

            }

        }

            // Retrieves or Creates private queues with a key 
        public MessageQueue GetOrCreateQueue(string sKey)
        {
            MessageQueue queue;
            // Create and connect to a private Message Queuing queue.
            if (!MessageQueue.Exists(string.Format(".\\Private$\\{0}", sKey)))
            {
                // Create the queue if it does not exist.
                queue = MessageQueue.Create(string.Format(".\\Private$\\{0}", sKey));
            }

            else
            {
                queue = new MessageQueue(string.Format(".\\Private$\\{0}", sKey));
            }

            queue.Formatter = new XmlMessageFormatter(new String[] { "System.String,mscorlib" });
            queue.MessageReadPropertyFilter.SetAll();

            return queue;
        }

0 个答案:

没有答案