负载测试后,我发现有些数据包不是顺序的。
它是基本的WCF服务,客户端不断发送请求。
答案 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我们需要进行交易,每条消息将按照发送的顺序传送一次。