TypeLoad Exception。 Microsoft Dynamics CRM遇到错误

时间:2015-03-20 15:24:22

标签: c# ajax dynamics-crm dynamics-crm-2013 dynamics-crm-online

在我们的CRM 2013 Online生产实例中,我们在ajax调用(POST)错误处理程序(XHR.responseText)中遇到以下错误:

“错误”:{ “code”:“ - 2147220970”,“message”:{ “lang”:“en-US”,“value”:“System.TypeLoadException:Microsoft Dynamics CRM遇到错误。管理员或支持的参考编号:#0EBC6CBF” } } }

有问题的.NET插件代码在我们安装了 SP1 UR2 的2013内部部署开发实例上运行良好。我还检查了版本号,并且在线生产的isntance和内部部署开发实例都设置为6.1.2.112版本。

插件代码是用C#编写的,并作为Dynamics CRM上的程序集进行部署。正如CRM Online上发生的那样,我担心我无法调试代码或记录它的痕迹?

3 个答案:

答案 0 :(得分:1)

检查插件中是否使用了任何外部类型(引用的程序集),因为在线安装不支持这些类型,但如果它们是从GAC提供的,则可以在本地工作。

您可能还尝试执行需要完全信任的操作,而Sandbox插件不支持该操作。

答案 1 :(得分:1)

您可能正在插件的静态构造函数中执行Assembly.Load调用,这在沙盒模式下不可用,这是CRM Online所需的。

修改

我会与Microsoft一起创建一个支持案例并提供参考编号,您将能够查看哪个参考实际上正在破坏。

答案 2 :(得分:0)

最后,我在插件代码中找到了罪魁祸首 - 扩展方法 - 仅在Dynamics CRM 2013 Online上导致 System.TypeLoadException 例外。

    public static bool IsEqualTo<TSource>(this IEnumerable<TSource> value, IEnumerable<TSource> compareList)
    {
        return IsEqualTo(value, compareList, null);
    }

删除此插件后,插件已成功触发。

扩展方法在Dynamics CRM 2013内部部署和Dynamics CRM 2015在线和内部部署(沙盒模式)中运行良好。

由于这是一个庞大的代码库,得益于VS2013中的Dependency Graph功能,它帮助我通过逐个删除类来找到它。