You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Dynamics CRM报System.NullReferenceException错误求助

Microsoft Dynamics CRM 空引用异常(参考号#DF5EC476)排查方案

前端弹出的System.NullReferenceException是裁剪后的通用提示,没有带具体错误堆栈,按以下步骤定位修复即可:

  • 第一步:获取完整错误堆栈
    用错误附带的参考号#DF5EC476检索对应日志,拿到完整调用链才能精准定位问题:
    • 本地部署版:登录CRM前端服务器,打开事件查看器 > Windows日志 > 应用程序,筛选来源为MSCRMWeb的日志,匹配你触发错误的时间点,找到带对应参考号的日志条目,里面会记录完整的异常堆栈、触发错误的模块/代码位置
    • 在线版:登录Power Platform管理中心,进入对应环境的「监控 > 日志」板块,用参考号检索对应错误详情
  • 第二步:高频场景快速排查(无需拉日志可先验证)
    这类错误90%以上是自定义逻辑或配置变更导致的,优先检查最近的变更项:
    • 如果你最近更新/上线过插件、自定义工作流、Action:检查代码里是否存在未做非空判断就直接取值的逻辑,比如直接调用entity.Attributes["字段名"].ToString()但对应字段值为空、直接取关联实体属性但关联记录不存在,这类写法是触发空引用的最高频原因,给对应取值逻辑加上非空判断即可修复
    • 如果是打开表单、切换表单字段时报错:检查表单绑定的JavaScript脚本、自定义Web资源,看OnLoad/OnChange事件里是否存在直接调用控件/字段值方法但没判空的情况,比如Xrm.Page.getAttribute("字段名").getValue()返回null时直接调用字符串方法、DOM方法
    • 如果是导入数据、执行批量操作时报错:检查导入文件里的查找字段值是否能匹配到对应系统记录,查找字段匹配失败返回null时,系统内置逻辑也可能触发空引用
    • 如果你最近删除过实体字段、停用流程/插件、调整过安全角色:先回滚最近的配置变更,测试错误是否复现
  • 第三步:权限问题验证

切换系统管理员账号执行相同操作,如果管理员操作无报错,可直接定位为权限问题:当前用户没有某类关联记录/字段的读取权限时,系统取数返回null,后续逻辑未做判空就会触发异常,补全对应实体、字段的安全角色权限即可。

  • 第四步:代码修复参考
    定位到问题点后,所有取值逻辑前加非空校验即可:
    插件C#代码校验示例:
    // 取值前先判断字段存在且值不为空
    if (entity.Contains("new_customfield") && entity["new_customfield"] != null)
    {
        var fieldValue = entity["new_customfield"].ToString();
        // 后续业务逻辑
    }
    
    表单JS代码校验示例:
    var fieldValue = Xrm.Page.getAttribute("new_customfield").getValue();
    if (fieldValue !== null && fieldValue !== undefined) {
        // 后续业务逻辑
    }
    

内容的提问来源于stack exchange,提问作者Himanshu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:33:16