Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MSMQ WCF,接收时间_Wcf_Error Handling_Msmq - Fatal编程技术网

MSMQ WCF,接收时间

MSMQ WCF,接收时间,wcf,error-handling,msmq,Wcf,Error Handling,Msmq,使用MSMQ WCF客户端和服务器时,如何设置消息TimeToBeReceived 我正在使用msmq服务来管理到不可靠目标系统的消息传递。邮件可能会在数天内无法送达 使用服务器绑定中的以下设置,大多数无效消息进入毒药队列 receiveErrorHandling="Move" 某些消息最终出现在系统死信队列中,而不是中毒队列中。是否有方法将死信消息配置为进入与上述相同的队列?队列是实际消息队列的子队列,称为队列;毒药 如何将timeToBeReceived设置为足够大的值,以使消息最终进入毒

使用MSMQ WCF客户端和服务器时,如何设置消息TimeToBeReceived

我正在使用msmq服务来管理到不可靠目标系统的消息传递。邮件可能会在数天内无法送达

使用服务器绑定中的以下设置,大多数无效消息进入毒药队列

receiveErrorHandling="Move"
某些消息最终出现在系统死信队列中,而不是中毒队列中。是否有方法将死信消息配置为进入与上述相同的队列?队列是实际消息队列的子队列,称为队列;毒药


如何将timeToBeReceived设置为足够大的值,以使消息最终进入毒药队列?我希望每种消息类型都有一个失败的队列,我也不想处理死信


谢谢

您可以在绑定的配置文件中设置值:

<bindings>
  <netMsmqBinding>
    <binding timeToLive="[define your timespan here]" />
    <!-- more configuration -->
  </netMsmqBinding>
</bindings>
...

...

“我也不想处理死信。”您应该始终处理死信队列。即使它是一个线程在监视它,所以它不会被填满。我不希望一个队列用于消息处理,然后几个队列用于错误处理。我觉得这很可笑。我想要一个消息队列,一个失败队列。也许我应该试试nservicebus?MSMQ死信队列是基本包的一部分。为支持WCF而引入的子队列实际上只是一个过滤器,因为它们在目标队列中对消息进行排序。这是客户机设置还是服务器设置?@Jim:视情况而定。您应该在那些将发送消息的地方定义。据我所知,这与传输的接收端无关。接收端不应对消息进行任何更改,因此需要在发送应用程序中进行设置,或将其设置为发送方的全局设置。这样就可以了。我会让它足够长,以确保信息得到处理。