私はWindows Server 2008でC#を使用しています。同じドメイン内の別のマシンのパブリックトランザクションキューからメッセージを受け取りたいとします。このエラーは次のようになります。リモートパブリックのトランザクションキューからメッセージを受信できないのはなぜですか?
私はDTCPingを試しましたが、一方向では成功しましたが、もう一方は失敗しました。ログの関連部分は次のとおりです。
++++++++++++hosts ++++++++++++
127.0.0.1 localhost
::1 localhost
08-20, 15:47:22.739-->Error(0x424) at clutil.cpp @256
08-20, 15:47:22.739-->-->OpenCluster
08-20, 15:47:22.739-->-->1060(The specified service does not exist as an installed service.)
++++++++++++++++++++++++++++++++++++++++++++++
DTCping 1.9 Report for DEV-MSMQ2
++++++++++++++++++++++++++++++++++++++++++++++
RPC server is ready
++++++++++++Validating Remote Computer Name++++++++++++
08-20, 15:47:26.207-->Start DTC connection test
Name Resolution:
dev-msmq1-->192.168.22.11-->Dev-msmq1
08-20, 15:47:26.222-->Start RPC test (DEV-MSMQ2-->dev-msmq1)
RPC test failed
これはなぜ失敗するのでしょうか? WindowsファイアウォールがMSDTC用に開かれました。 Windows 2008とMSMQに関する多くの情報を見つけるのは難しいです。
EDIT:キュー名はFORMATNAMEです:DIRECT = OS:DEV-msmq1の\のGetMapリクエスト、およびFORMATNAME:DIRECT = OS:DEV-msmq1の\のLOGEVENT。それらはパブリック、トランザクションキューであり、Everyoneはそれらに対してピークを表示/許可を受けています。
using (TransactionScope tx = new TransactionScope(TransactionScopeOption.RequiresNew))
{
using (var queue = new MessageQueue(QueueName))
{
queue.Formatter = new XmlMessageFormatter(new string[] { _targetParameterType });
var message = queue.Receive(TimeOut, MessageQueueTransactionType.Automatic);
string messageId = message.Label;
...
}
}
おかげ
あなたのコードやキューの設定を投稿することがあります。 MSMQは、キュー名の書式設定に煩わされる可能性があります。 – Web
しかし実際の名前は何ですか? (http://technet.microsoft.com/en-us/library/cc778392(WS.10).aspx)。私はそれが取引に関係していると思います。 (MSDTC)。しかしそれを使ったことはありません。ごめんなさい。 –
申し訳ありません...ここで使用されているキュー名は、FormatName:DIRECT = OS:dev-msmq1 \ SendEmailおよびFormatName:DIRECT = OS:dev-msmq1 \ LogEventです。 –