发送消息时MessageQueue怪异

时间:2013-09-07 00:12:00

标签: msmq

写入远程MSMQ似乎正在开/关。我不确定有什么问题,还有什么可以确认发送。

我不愿意设置某种ack。这似乎是一种矫枉过正。

  using (var queue = new MessageQueue(queueName, QueueAccessMode.Send))
      {
        var messageQueueTransaction = new MessageQueueTransaction();
        messageQueueTransaction.Begin();
        try
        {
          queue.Formatter = new XmlMessageFormatter(new Type[] { typeof(EmailMessage) });
          var msg = new Message();
          msg.Label = emailMessage.Subject;
          msg.Body = emailMessage;
          queue.Send(msg, messageQueueTransaction);
          messageQueueTransaction.Commit();
        }
        catch (Exception e)
        {
          LoggerLib.Logger.ErrorException(e, "Error Sending Email using MSMQ", emailMessage);
          messageQueueTransaction.Abort();
        }
        finally
        {
          queue.Close();
        }
      }

MSMQ的连接字符串格式为:“FormatName:DIRECT = OS:FULLMACHINENAME \ private $ \ emailmessagequeue”

另外,我使用了“FormatName:DIRECT:TCP:IPAddress \ private $ \ emailmessagequeue”。

当我在本地运行它时没有故障。所以,我允许Everyone拥有完全访问权限,但仍然无效。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

端口号1801被阻止。这解决了它。 -