MSMQ:MSMQ是否保证顺序消息传递?

时间:2016-07-15 04:52:31

标签: c# msmq msmq-wcf

负载测试后,我发现有些数据包不是顺序的。

它是基本的WCF服务,客户端不断发送请求。

1 个答案:

答案 0 :(得分:0)

使用netMsmqBinding可以保证(按顺序,完全一次)交付。

您需要做的第一件事是创建实际的MSMQ消息队列事务。

其次,你必须告诉WCF在事务中登记如下:

$("#estado").select2({
    placeholder: "Search for a repository",
    minimumInputLength: 3,
    ajax: {
        url: "endpoints/recebeUF.php",
        dataType: 'json',
        quietMillis: 250,
        data: function (term, page) {
            return {
                q: term, 
                page: page 
            };
        },
        results: function (data, page) {
            var more = (page * 30) < data.total_count; 
            return { results: data, more: more };
        }
    },
    escapeMarkup: function (m) { return m; }
});

最后,您需要使用exactOnce绑定参数指定服务的保证行为:

[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void Handle(Something msg)
{
    ....
}

ExactlyOnce告诉WCF我们需要进行交易,每条消息将按照发送的顺序传送一次。