0

写入远程 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:FULLMACINENAME\private$\emailmessagequeue"

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

当我在本地运行它时,它可以正常工作。所以,我允许每个人都拥有完全访问权限,但它仍然不起作用。

有任何想法吗?

4

1 回答 1

2

端口号 1801 被阻止。这解决了它。——</p>

于 2013-09-09T23:52:42.320 回答