これについては他にも質問があることは知っていますが、実際にはこの質問には答えていません。
私が持っているコードは次のとおりです。
using (var mQ = new MessageQueue(qPath))
{
Console.WriteLine("machine: {0}, name : {1}, path : {2}", mQ.MachineName ,mQ.QueueName, mQ.Path);
Console.WriteLine("message count : {0}",mQ.GetAllMessages().Count());
}
ローカル キューでGetAllMessages()を試すと、もちろんすべてが機能します。
string qPath = @".\private$\queueName";
ただし、コンピューター名だけで正常に ping できる同じドメインのリモート マシンでキューを試すと、次のエラーが発生します。
Invalid queue path name. at System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath
私はもう試した:
string qPath = @"remoteMachineName\private$\queueName";
string qPath = @"remoteMachineName.qualified.net\private$\queueName";
string qPath = @"DIRECT=OS:remoteMachineName.qualified.net\private$\queueName";
string qPath = @"DIRECT=OS:remoteMachineName\private$\queueName";
string qPath = @"DIRECT=OS:ip.ad.re.ss\private$\queueName";
string qPath = @"DIRECT=TCP:ip.ad.re.ss\private$\queueName";
それらはすべて私に同じエラーを与えます。
Web のドキュメントには、完全な「パス」を知っていれば、プライベート キューを見つけることができると記載されています。
これは本当ですか?もしそうなら、どのようにフルパスをコンパイルしますか??
乾杯