简体   繁体   English

WCF MsmqBinding WAS:侦听器尝试将每个队列与服务进行匹配

[英]WCF MsmqBinding WAS : Listener try to match every queue to a service

I'm using a WCF Service with netMsmqBinding and WAS. 我正在将WCF服务与netMsmqBinding和WAS一起使用。 Everything seems to work well (including remote posting to the queue thanks to stackoverflow community:)). 一切似乎都运行良好(由于使用了stackoverflow社区,因此包括了远程发布到队列:)。

The remaining problem now is that the service processes a few messages then stops with a message in the event log like "The service '~/registrator' does not exist.". 现在剩下的问题是该服务处理一些消息,然后在事件日志中以一条消息停止,例如“服务'〜/ registrator'不存在”。 It appears that I have a queue with that name that has nothing to do with my service. 看来我的队列名称与我的服务无关。 If I remove that queue, another message of the same type appears for another queue, etc... So it seems that the msmqListener service try to read from all queues and match a service endpoint for each of them ? 如果我删除该队列,则另一个队列出现相同类型的另一条消息,依此类推...那么看来msmqListener服务尝试从所有队列中读取并为每个队列匹配服务端点?

The question would then be : how to tell netMsmqListener service to only listen for some queues or at least not failing when an endpoint can't be found for some of those ? 问题将是:如何告诉netMsmqListener服务仅侦听某些队列,或者在找不到某些端点时至少不失败?

As far as I can tell, the net.msmq listener adapter service is not configurable directly. 据我所知,net.msmq侦听器适配器服务不能直接配置。 There is a report in the Microsoft Connect that seems to be a similar issue to the one you are having. Microsoft Connect中有一份报告似乎与您拥有的报告类似。 Microsoft support wasn't able to replicate the issue but hasn't closed the report. Microsoft支持部门无法复制问题,但尚未关闭报告。 In that case, the problem may have been the MSMQ queue name for SERVICE1. 在这种情况下,问题可能出在SERVICE1的MSMQ队列名称上。 The requirement seems to be using this naming convention: ServiceName/service.svc for the queue name. 要求似乎正在使用以下命名约定:ServiceName / service.svc作为队列名称。

A couple of workarounds: first try checking the permissions for the '~/registrator' queue and remove the account the net.msmq listener adapter service is running under if it is listed. 几个解决方法:首先尝试检查“〜/ registrator”队列的权限,并删除 net.msmq侦听器适配器服务正在运行的帐户(如果已列出)。 Otherwise (and more drastically), move the application that uses the '~/registrator' queue to another server and just leave WCF service queues on the current machine. 否则(更彻底),将使用“〜/ registrator”队列的应用程序移至另一台服务器,并将WCF服务队列保留在当前计算机上。

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

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