ExecuteMultipleRequest - SQL超时已过期 - Microsoft Dynamics CRM 2015

时间:2015-12-11 04:32:01

标签: c# dynamics-crm-online dynamics-crm-2015


在开发用于&#34; Microsoft Dynamics CRM 2015 Update 1 Online&#34;的同步插件期间我使用function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } function scrollto(val) { $('html,body').animate({scrollTop: $('#'+val).offset().top - $('#navi_bar').height()},700); } 创建多个实体记录。当我在CRM中测试插件时,会出现一条异常消息,其中显示&#34; SQL Timeout已过期&#34;。
如果我将ExecuteMultipleRequest替换为循环中调用的ExecuteMultipleRequest,则可以正常工作。如果我将插件的类型从同步更改为异步而不替换service.Create(...),它也可以正常工作 有人知道同步插件中可能导致SQL超时问题的原因是什么? 谢谢。

2 个答案:

答案 0 :(得分:2)

Dynamics CRM online限制为超时前2分钟的默认设置。这意味着单个插件操作中的较大进程容易超时。

以下是选项列表:

  • 查看代码以提高效果
  • 将繁重的操作从父级移动到子实体记录
  • 创建一个具有类型和操作的队列实体,该实体将单独触发每个实体记录的操作
祝你好运

干杯

答案 1 :(得分:0)

我不建议在插件中使用ExecuteMultipleRequest。你当时已经在服务器上了,因此使用ExecuteMultipleRequest没有任何性能上的好处(从我自己的测试中,我没有看到性能提升,如果你有其他的数据说,会喜欢看见了)。您还遇到了请求失败的潜在问题since CRM limits the number of concurrent ExecuteMultipleRequests that are executing