繁体   English   中英

WCF服务未读取队列中的消息

[英]WCF Service Not Reading Messages in Queue

我有一个从消息队列读取的WCF服务。 我注意到在我们的最新部署中,队列中有一条尚未读取的消息。 WCF服务已启动并正在运行,并且正在正确地建立与队列的连接(否则我会收到并出错)。

我们最近对代码进行了一些更改,我们想知道是否可能与之相关。 对于我们来说,服务将运行但消息未读似乎很奇怪。 如果队列中有格式错误的消息,我至少希望WCF引发某种错误。

我查看了消息的属性,并说消息的移动为零,所以我认为它不会发送到重试子队列。 它只是坐在那里,服务不会读取它。

WCF是否会忽略队列中的消息? WCF如何处理格式错误的消息?

抱歉,如果没有足够的信息继续进行。 在这一点上,我只是想了解导致邮件无法处理的原因。

这种情况似乎太奇怪了。 WCF根本不做任何事情是没有道理的。

我最终决定只是尝试重新启动服务器上的MSMQ服务。 完成此操作后,我的服务立即会收到消息,然后一切都会重新开始。

我不知道这是否与Windows Update或其他服务器更改有关。 我很高兴这很容易解决-这将是我将来尝试的第一件事。

我们在WCF和MSMQ中遇到过几种相同的问题。 一旦应用程序池长时间闲置,由于某种原因,WAS侦听器将停止工作。 因此,WCF服务不会拾取队列中的消息。

为了解决此问题,我们在不具有IsOneWay = true的情况下公开了同一服务上的另一个合同(因为此操作将不会与队列进行交互)。 然后创建一个Windows服务,该服务在指定的时间间隔后对WCF服务URL进行ping操作,以确保WAS进程始终处于活动状态,并且只要队列中有消息,WCF就会提取消息。 本文详细解释了如何解决MSMQ WCF服务停用问题

另外,请确保为IIS上的应用程序启用了http&net.msmq协议。

另外一个不错的文章,使用Net.Msmq结合与MSMQ WCF实现一步步引导安装MSMQ使用Net.Msmq结合WCF

暂无
暂无

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

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