升级2sxc 17.9后DNN事件日志被报错填满,求排查原因
问题成因分析
核心现象对应原因
- DNN日志中的"The operation was canceled"错误:
该错误来自接口/api/2sxc/app/auto/query/System.EntityPicker/Default,本质是客户端主动中断了HTTP请求,导致服务器端的CancellationToken触发,抛出取消异常并被DNN日志记录。 - 保存时的"status 0"错误提示:
status 0是浏览器XMLHttpRequest的特殊状态码,代表请求未完成就被中止(非服务器返回的HTTP状态码)。但文章实际保存成功,说明核心保存请求已经完成并返回成功响应,后续触发的EntityPicker相关异步请求被中止,才弹出错误提示。
具体触发逻辑
升级到2sxc 17.9后,前端保存流程的回调逻辑出现了请求生命周期管理的疏漏:
- 用户触发保存操作,前端发送核心保存请求;
- 保存请求成功返回后,前端立即执行页面状态重置、组件卸载或跳转逻辑;
- 此时页面上的EntityPicker组件可能仍在后台执行自动查询的异步请求(比如加载关联实体选项);
- 前端的状态重置/卸载操作会中止所有未完成的HTTP请求,导致EntityPicker的API调用被中断;
- 服务器端处理该API请求时,检测到客户端断开连接,抛出
OperationCanceledException,被DNN事件日志捕获;同时前端因为请求中止,弹出"Had an error talking to the server (status 0)"的提示。
总结
这是2sxc 17.9前端逻辑的问题:保存完成后的前端操作未等待所有并发异步请求完成,就主动中止了请求,导致非核心的EntityPicker查询被中断,进而产生日志错误和前端提示,但不影响核心保存功能。
内容的提问来源于stack exchange,提问作者MBouwman
相关产品推荐
相关产品推荐

