リモート 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 にフル アクセスを許可しましたが、まだ機能しません。
何か案は?