我们在生产环境中有一个问题,但在本地 DEV 环境中没有发现任何问题。
问题:我有一个 API - /api/GenerateAutoPdf/{Guid} (POST) 基于此请求的响应,我们正在 UI(客户端)中打开一个模式。因此,如果上述 POST 请求的响应为 200,则“打印模式”将在 UI 中打开,以便用户可以选择生成的 PDF,然后可以从模式打印那些生成的 PDF。
如果响应为 500,则打印模式将不会打开,因为存在内部服务器错误。
在一种情况下,即使服务器以 500 响应,也生成了 PDF,但没有显示“打印模式”,因为这不是“200”OK 响应。打印模式没有出现。这个问题真的是断断续续的。
问题:在调试问题以查找 500 错误的根本原因时。
在事件查看器中,我可以看到此特定 API 请求的“OperationCanceledException”。
我浏览了一些关于找到“OperationCanceledException”根本原因的文章
从他们中的大多数人看来,一般的观点是它可能是由于客户端关闭了浏览器发送取消令牌的浏览器窗口。但事实并非如此,我无法重现该问题。
此外,在不同 API 的事件查看器日志中有很多“OperationCanceledExceptions”,但对于这些,我们并没有真正被阻止。这也告诉用户没有关闭浏览器窗口,而且这也不会发生在某些用户可能存在浏览器问题的某些用户身上。
有没有人有任何意见来解决这个问题,或者你们可以让我知道这个问题的前进路径或调试这个问题的任何提示吗?
当网络中存在丢包时,是否会出现此问题?
注意:这是一个服务器问题,我们使用的客户端技术堆栈应该无关紧要。