CRM计划服务活动:检索资源可用性时刷新错误求助
排查Dynamics CRM OOTB服务活动计划子网格刷新500错误思路
我碰到过好几次CRM原生功能里出现这种空引用异常的情况,结合你给出的报错细节,给你几个针对性的排查方向:
1. 深挖系统日志获取精准错误细节
你手里的错误参考号#59FB87F1和#E9DAA4DE是关键,让CRM管理员:
- 查看服务器的Windows事件查看器(Application日志),找到对应时间点的CRM相关错误日志,里面会明确指出
GetGridDataProvider方法里到底哪个对象为空(比如网格配置XML、关联资源记录、上下文参数等)。 - 如果开启了CRM平台跟踪日志,直接搜索这两个参考号,跟踪日志会提供最底层的调用细节,帮你快速定位根因。
2. 验证服务活动核心配置完整性
因为是未做自定义的原生功能,配置异常是常见诱因:
- 检查资源配置:确认你选择的资源是否启用了「日程安排」,工作时间、休息时间是否配置合理,有没有异常的时间规则。
- 检查服务配置:服务是否关联了正确的资源组/资源,默认时长是否和你设置的计划时长匹配,有没有开启特殊服务约束(比如资源独占、预约间隔)。
- 检查子网格元数据:系统更新或配置重置可能导致网格定义损坏,可在解决方案中导出
schedulingdialog页面配置,和正常运行的CRM环境对比,看子网格布局、数据源配置是否一致。
3. 测试不同数据组合排除数据异常
特定的异常记录可能触发原生功能的隐藏bug:
- 换不同的客户、资源、服务组合测试,比如用全新的测试资源、测试服务,只填必填项计划活动,看是否能正常刷新子网格。
- 检查出问题的资源日程表,有没有重复预约、时间重叠的异常记录,尝试删除或修复后再测试。
4. 检查系统补丁与更新状态
从报错里的Microsoft.Xrm.Sdk Version=7.0.0.0能看出是CRM 2016版本,这个版本有几个已知的网格刷新相关bug:
- 查找微软知识库,确认是否有针对AppGridWebService空引用的UR(更新汇总)补丁,比如UR3及以后版本修复过部分原生网格的刷新问题。
- 确认最近有没有安装过CRM系统更新,更新后可能引入兼容性问题,若允许可尝试回滚到更新前状态测试。
5. 重置系统缓存与元数据
缓存过期或元数据异常是CRM常见的“玄学”问题:
- 让管理员执行
IISRESET重置服务器端IIS缓存,同时在客户端清除浏览器所有缓存(包括Cookie、本地存储)后重新测试。 - 尝试重新发布所有自定义组件(即使你没做自定义,重新发布元数据也能修复部分原生组件的元数据异常)。
6. 验证用户权限配置
权限不足也可能导致系统无法获取必要的对象实例:
- 用系统管理员账号测试相同操作,如果管理员能正常执行,说明当前用户权限存在问题。检查用户是否拥有服务活动、资源、服务的读写权限,以及「读取资源日程」的权限是否被误删。
- 确认用户所在安全角色是否包含服务活动计划相关权限(比如“计划服务活动”、“查看可用时间”等)。
附你提供的原始报错信息:
POST请求
https://****.****/****/AppWebServices/AppGridWebService.ashx?operation=Refresh返回500(Internal Server Error),调用栈如下:execute @ VM66800 global.ashx?ver=-821682931:7 executeInternal @ GridControl.js?ver=-821682931:1 $5f_3 @ GridControl.js?ver=-821682931:1 $4T_3 @ GridControl.js?ver=-821682931:1 set_pageNumber @ GridControl.js?ver=-821682931:1 Search @ schedulingdialog.js?ver=-821682931:1 onclick @ schedulingdialog.aspx?ActivityId=&ActivityTypeCode=4214&dType=1:380未处理异常:
System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: System.Xml.XmlException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #59FB87F1 Detail: <OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts"> <ErrorCode>-2147220970</ErrorCode> <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> <Message>System.Xml.XmlException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #59FB87F1</Message> <Timestamp>2018-01-09T12:24:52.7024342Z</Timestamp> <InnerFault> <ErrorCode>-2147220970</ErrorCode> <ErrorDetails xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" /> <Message>System.NullReferenceException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #E9DAA4DE</Message> <Timestamp>2018-01-09T12:24:52.7024342Z</Timestamp> <InnerFault i:nil="true" /> <TraceText i:nil="true" /> </InnerFault> <TraceText i:nil="true" /> </OrganizationServiceFault> System.NullReferenceException: 对象引用未设置到对象的实例。 at Microsoft.Crm.Core.Application.WebServices.AppGridWebServiceHandler.GetGridDataProvider(String gridXml) at Microsoft.Crm.Core.Application.WebServices.AppGridWebServiceHandler.Refresh(String gridXml, StringBuilder sbXml, StringBuilder sbHtml, Boolean returnJsonData) at Microsoft.Crm.Core.Application.WebServices.AppGridWebServiceHandler.ProcessRequestInternal(HttpContext context)
内容的提问来源于stack exchange,提问作者Richard Dewhirst
相关产品推荐
相关产品推荐

