and*_*ndy 7 msmq system.messaging
我知道还有其他问题,但实际上并没有回答这个问题.
我的守则是:
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());
}
Run Code Online (Sandbox Code Playgroud)
当我在本地队列上尝试GetAllMessages()时,当然一切正常:
string qPath = @".\private$\queueName";
Run Code Online (Sandbox Code Playgroud)
但是,当我在同一个域上的远程计算机上尝试队列时,我只能使用计算机名称成功ping通,我收到此错误:
Invalid queue path name. at System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath
Run Code Online (Sandbox Code Playgroud)
我试过了:
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";
Run Code Online (Sandbox Code Playgroud)
所有这些都给了我同样的错误.
Web上的文档说明如果您知道完整的"路径",就可以找到私有队列.
这是真的?如果是这样,如何编译完整路径?
干杯
该异常表明由于某种原因路径名无法转换为格式名称。尝试使用格式名称创建队列
http://msdn.microsoft.com/en-us/library/ch1d814t.aspx
例如,Formatname:DIRECT=OS:ip.ad.re.ss\private$\queueName
干杯约翰
| 归档时间: |
|
| 查看次数: |
4243 次 |
| 最近记录: |