繁体   English   中英

如何使用MSMQ服务

[英]How to consume MSMQ service

我想使用msmq服务。 但是无法发送消息到队列。 这是我的代码。

System.Messaging.MessageQueue msmQ = new System.Messaging.MessageQueue("net.msmq://myServerName/private/MyQueueName");

msg ="<nodeDetails><node>Node1</node></nodeDetails>";//Dummy value. it is XML structure consist of multiple node
 msmQ.Send(msg);

它给我关于msmQ.Send(msg)的错误

错误消息=“长度不能小于零。参数名称:长度”

以下内容已安装在我的m / c上

  1. Microsoft Message Queue(MSMQ)服务器
  2. 窗口激活过程

当我尝试

 bool msmQExits = MessageQueue.Exists("net.msmq://myServerName/private/MyQueueName");

但是它给出“路径语法无效”

我什么都做不了。 我只有一个msmq URL“ net.msmq:// myServerName / private / MyQueueName”

请让我知道如何使用此类网址,并将消息发送到“ MyQueueName”

任何帮助表示赞赏

提前致谢。

将您的队列名称更改为此:

var queueName = @"FormatName:DIRECT=HTTP://URLAddressSpecification/net.msmq://myServerName/private/MyQueueName";

并且您无法通过MessageQueue.Exists方法检查是否存在远程查询。 它将始终引发异常。

您可以检查以下链接以获取更多信息:

同样,问题不在于消息,您看到该长度小于0。如果您更深入并检查堆栈跟踪,您会发现队列名称格式无效。 它尝试在队列名称中查找FORMAT出现的位置,但未找到它, Substring()方法在那里返回-1

堆栈跟踪:

   at System.String.Substring(Int32 startIndex, Int32 length)
   at System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException)
   at System.Messaging.MessageQueue.get_FormatName()
   at System.Messaging.MessageQueue.SendInternal(Object obj, MessageQueueTransaction internalTransaction, MessageQueueTransactionType transactionType)
   at System.Messaging.MessageQueue.Send(Object obj)
   at MessagingTest.Program.SendMessage(String str, Int32 x) in c:\Users\ivan.yurchenko\Documents\Visual Studio 2013\Projects\MSMQTestProjects\MessagingTest\MessagingTest\Program.cs:line 21
   at MessagingTest.Program.<Main>b__1() in c:\Users\ivan.yurchenko\Documents\Visual Studio 2013\Projects\MSMQTestProjects\MessagingTest\MessagingTest\Program.cs:line 38
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

这是有关如何使用服务的示例。

它具有Wcf服务,物理MSMQ和客户端项目。 因此,您必须具有WCF服务来接收消息,并且必须具有msmq来存储消息,并且必须具有客户端才能发送消息。

http://www.codeproject.com/Articles/326909/Creating-a-WCF-Service-with-MSMQ-Communication-and

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM