写入远程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拥有完全访问权限,但仍然无效。
有什么想法吗?
答案 0 :(得分:2)
端口号1801被阻止。这解决了它。 -