CRM 2011:ExecuteMultipleRequest冻结

时间:2014-08-25 03:58:43

标签: dynamics-crm-2011

我的方案是我有一个插件需要运行一大堆 AddMembersTeamRequest RemoveMembersTeamRequest (每个大约2000个)

我遇到以下代码时出现问题:

var executeMultipleRequest = new ExecuteMultipleRequest();
executeMultipleRequest.Settings = new ExecuteMultipleSettings() { ContinueOnError = false, ReturnResponses = false };

var organizationRequestCollection = new OrganizationRequestCollection();

foreach (var sharedRecordsOwningTeam in sharedRecordsOwningTeams)
{
    organizationRequestCollection.Add(CreateAddMembersTeamRequest(userId, sharedRecordsOwningTeam.Id));
}

executeMultipleRequest.Requests = organizationRequestCollection;
service.Execute(executeMultipleRequest);

然而,有多少请求属于 ExecuteMultipleRequest 并不重要,因为它似乎冻结了这个过程(我尝试过只有一个请求 ExecuteMultipleRequest 集合)

但是下面的代码似乎工作正常:

foreach (var sharedRecordsOwningTeam in sharedRecordsOwningTeams)
{
    service.Execute(CreateAddMembersTeamRequest(userId, sharedRecordsOwningTeam.Id));
}

正如您所看到的,上面代码的问题在于它导致进程执行大约2000多个请求。

有人知道为什么使用 ExecuteMultipleRequest 完全冻结了这个过程吗? (即使在请求集合中只有1个添加/删除团队成员请求)

1 个答案:

答案 0 :(得分:0)

我想我已经明白了。

我认为这对我来说很冷淡,因为我试图从当前业务部门的默认团队中删除用户。

由于某种原因,请求不是错误的,而是只是坐在那里。

但我想我还应该指出,使用 ExecuteMultipleRequest 并不比运行多个 AddMembersTeamRequest更快。

即使是巨大的 AssociateRequest 也不会更快。