我有一个MSMQ,它从各种来源接收XML格式的消息。我有一个WCF端点(使用MsmqIntegrationBinding),我想接收这些消息。我定义了以下内容:[ServiceContract(Namespace="http://TestApp.MSMQService",ProtectionLevel=ProtectionLevel.None)][ServiceKnownType(typeof(String))]publicinterfaceIMsmqReceiverService{[OperationContract(IsOneWay=true,Action="*")]voidSub
我应该了解MSMQ的任何限制吗?我想用它来读写消息,但是消息很多。一分钟内数字应该在200,000-300,000左右。有什么想法吗?它应该有效吗? 最佳答案 MSMQ是一个队列,其主要好处是解耦消息的发送者和接收者(例如,接收系统可以离线)。如果保证延迟是一项要求,那么我会寻找其他地方(例如.NET远程处理/WCFNetTCP绑定(bind)等)也就是说,我们使用的MSMQ具有低级硬件,突发速率>>每秒500条消息,但在集成(EAI)环境中,MSMQ的优势在于:异步-发送和接收消息的进程可以以不同的速率发生可能是事务性的(例如,在
我想从C#WPF应用程序的消息队列中读取XML消息。消息由Navision代码单元保存到队列中。首先,我不太确定保存在队列中的消息是否可用,因为它们采用某种十六进制格式,如下所示:FFFE3C003F007800ÿþ从队列中接收消息已经有效,但不知何故格式错误,因为我收到此运行时异常“无效操作异常:无法反序列化作为参数传递的消息。无法识别序列化格式。”我正在使用这段代码来阅读消息:publicMainWindow(){InitializeComponent();mqCustomerData=newMessageQueue(@".\private$\customerData");mqCu
是否有任何选项可以在阅读消息后将其从MSMQ中删除?比如,接收+删除可以作为原子操作运行? 最佳答案 听起来您想查看下一条消息,然后在完成处理后接收它。Messagemessage=Queue.Peek();Queue.ReceiveById(message.Id); 关于c#-MSMQ接收和删除,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/11988572/
我正在使用WiXMSMQ扩展通过以下代码创建队列:Privileged但是,当我执行candle.exe-extWixMsmqExtensionBlah.wxs时出现错误:“CNDL0005:产品元素包含意外的子元素‘msmq:MessageQueue’”我不明白为什么,我有引用和命名空间。任何帮助,将不胜感激。提前谢谢你。 最佳答案 msmq:MessageQueue必须是Component元素的子元素。您的消息队列将与父组件一起“安装”。组件的条件也将作为消息队列创建的条件。参见docreference了解更多详情。
我一直在查看处理来自MSMQ的消息的服务的示例代码。在代码中,在ReceiveCompletedEventHandler的开头立即调用EndReceive()方法,然后它开始实际处理消息的任务。只是我,还是这完全忽略了MSMQ可靠性的要点?EndReceive()难道不应该只在消息被完全处理后才被调用吗? 最佳答案 EndReceive仅表示消息已成功传递-它并不暗示您是否能够使用它做任何有值(value)的事情。听起来您正在考虑从MSMQ进行异步事务读取,在这种情况下,您只会在完全处理您的消息后完成收据(一劳永逸地从队列中删除消息
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在构建一个服务,允许连接到远程机器以诊断/修复它。我想在其中使用MSMQ,想知道是否可以假设MSMQ将始终工作,所以我不需要将其视为系统中有问题的部分之一?我希望这个等式成立:MSMQ不工作==机器/Windows已关闭谢谢
因此,我正在尝试将MSMQ消息从一台机器转发到另一台机器(这非常简单-我很惊讶),但是房子的操作方面的要求之一是我们需要能够看到当远程服务器决定不接受消息时某处的日志条目。例如,如果我尝试发送到一个不存在的队列,如下所示:MessageQueueremoteQueue=newMessageQueue(@"FormatName:Direct=OS:machinename\private$\notarealqueue");remoteQueue.Send("Test",MessageQueueTransactionType.Single);消息进入本地传递队列,似乎通过网络发送,但由于队列
这是在WindowsServer2008R2Enterprise(64位)上我想在消息到达特定队列时执行powershell脚本。如果我登录到服务器并使用实用程序将消息移动/复制到队列中,它会按预期工作。该规则没有条件,是一个“窥视”规则。该消息实际上是要从另一台服务器发送的。发生这种情况时,消息到达,通过查看任务管理器,我可以看到powershell.exe正在运行,但powershell脚本似乎没有执行。我尝试通过将测试脚本写入与脚本位于同一目录中的文件来简化此操作。同样,如果我手动将消息移入队列,则此方法有效,但如果消息来自另一台服务器,结果是相同的;脚本似乎没有执行。触发器肯定
我有asp.netMVC3应用程序发送各种电子邮件,如客户端注册、激活等目前正在使用smtpclient和smtp服务器authsmtp.com。在过去3个月中,应用程序曾多次在发送电子邮件和smtp未响应时挂起。我现在需要审查流程并通过以下改进进行改进。1.)当smtp服务器没有响应时,应用程序不应挂起。2.)如果smtp服务器不可用,请将电子邮件排队等待稍后发送。在接下来的24小时内重试递送3.)为排队、发送或失败的电子邮件添加额外的日志记录(24小时后)我想知道什么是实现上述要求的最佳选择。应用程序托管在windowsazure环境中。我想使用MSMQ来提供消息队列,我可以在每个