【问题标题】:MS Dynamics CRM Plugin Error - [A]CrmWebSvc cannot be cast to [B]CrmWebSvcMS Dynamics CRM 插件错误 - [A]CrmWebSvc 无法转换为 [B]CrmWebSvc
【发布时间】:2017-02-07 14:32:50
【问题描述】:

我正在尝试创建一个简单的 Dynamics CRM 插件,以使用 Microsoft 的 XRM 工具创建多个实体关联。我以这种方式实例化这个类:

public class PartnerPlugin : IPlugin
{
    public static IOrganizationService staticservice;
    string log = string.Empty;
    public void Execute(IServiceProvider serviceProvider)
    {
        IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        CrmServiceClient crmService = new CrmServiceClient((OrganizationServiceProxy)serviceFactory.CreateOrganizationService(context.UserId));
       ...
    }
}

这与我已经在 CRM 注册的另一个代码几乎相同,但这次它给了我这个错误:

[A]Microsoft.Xrm.Tooling.Connector.CrmWebSvc 无法转换为 [B]Microsoft.Xrm.Tooling.Connector.CrmWebSvc。 A 型源自 'plab_quote,Version=1.0.0.0,Culture=neutral, PublicKeyToken=567d876020387fa5' 在上下文 'LoadNeither' 中 字节数组。 B 型源自 'quotePartners, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4f3d8ebbe2fb8cfb' 在上下文中 字节数组中的“LoadNeither”。如果您联系支持人员,请提供 技术的 详情。

问题是,经过大量测试后,我只输入了这 3 行代码(IPluginExecutionContext context = (...) CreateOrganizationService(context.UserId))) 没别的了。同样的错误。 我正在使用 Dynamics CRM 365

另一个奇怪的事情:我已经遇到了这个错误,但是(我发誓)我只花了 5 分钟喝了杯咖啡,当我回来再试一次时,错误就消失了。 我再次尝试了一些咖啡,但它不起作用。什么都没有。

有人吗?有什么想法吗?

【问题讨论】:

    标签: c# .net plugins dynamics-crm microsoft-dynamics


    【解决方案1】:

    您的插件有两个字段,staticservicelog

    两个字段(静态和实例)都不是线程安全的。对于每个插件类-阶段-模式组合,系统都会创建一个用于多个最终并发事件的实例。

    竞争条件会导致线程覆盖彼此的字段,从而导致意外结果。

    【讨论】:

    • 我刚刚明白你所说的:)
    【解决方案2】:

    我终于意识到问题是我已经在另一个插件中用相同的步骤实例化了一个同名的变量! 那是错误:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-26
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多