4
MSMQを初めて使用しており、XMLメッセージをリモートトランザクションキューに送信しようとしています。両方のマシンは2003サーバーです。私は非トランザクションのリモートキューで動作させることができます。私はメッセージがトランザクションキューに落ちるように見えることはできません。 C#コードは以下の通りです。 Idoはエラーを表示しません。MSMQ MEssageをリモートトランザクションキューに送信する
Message rqMessage = new Message();
System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof([message type]));
XmlTextWriter writer = new XmlTextWriter(rqMessage.BodyStream, Encoding.UTF8);
ser.Serialize(writer, rqDoc);
rqMessage.Label = "message label";
rqMessage.TimeToBeReceived = Message.InfiniteTimeout;
rqMessage.TimeToReachQueue = Message.InfiniteTimeout;
rqMessage.ResponseQueue = new MessageQueue("Path");
rqMessage.Formatter = new ActiveXMessageFormatter();
MessageQueue rqQueue = new MessageQueue(nodeRequestQueue.SelectSingleNode("Path").InnerText);
bool transactional = false;
try
{
transactional = rqQueue.Transactional;
}
catch(MessageQueueException)
{
transactional = false;
}
if (transactional)
rqQueue.Send(rqMessage, MessageQueueTransactionType.Single);
else
rqQueue.Send(rqMessage);
問題は私がこのコードを変更するアクセス権を持っていないということです。私たちはサードパーティ製のアプリケーションを使用しています。私はこのコードスニペットを見直すように求めました。だから、私は本当にそれをテストすることはできません。私は自分のアプリケーションを作成し、これをテストすることができた、私は問題は、これはWebアプリケーションであると思うと私はそれが実行されているとリモートのキューにアクセスしようとしています。 – user1390125
トランザクションキューが必要な理由は何ですか?第三者のソフトウェアを変更できない場合は、他にもできることはほとんどありません。 –
'MessageQueueTransaction'は' IDisposable'なので、その使用法を 'using'ステートメントにラップするとよいでしょう。それに応じて私は答えを更新した。 –