C# 来自IIS的许多响应以OperationCanceledException结尾,导致500个内部服务器错误

C# 来自IIS的许多响应以OperationCanceledException结尾,导致500个内部服务器错误,c#,asp.net-web-api,iis-7.5,internal-server-error,intermittent,C#,Asp.net Web Api,Iis 7.5,Internal Server Error,Intermittent,我们在生产环境中有一个问题,但在本地开发环境中没有发现任何问题 问题: 我有一个API -/api/GenerateAutoPdf/{Guid}(POST) 根据此请求的响应,我们在UI(客户端)中打开一个模式。 因此,如果上述POST请求的响应为200,则“打印模式”将在UI中打开,以便用户可以选择生成的PDF,然后可以从模式中打印生成的PDF 如果响应为500,则打印模式将不会打开,因为存在内部服务器错误 在一个场景中,即使服务器响应为500,也会生成PDF,但“打印模式”没有显示,因为这不

我们在生产环境中有一个问题,但在本地开发环境中没有发现任何问题

问题: 我有一个API -/api/GenerateAutoPdf/{Guid}(POST) 根据此请求的响应,我们在UI(客户端)中打开一个模式。 因此,如果上述POST请求的响应为200,则“打印模式”将在UI中打开,以便用户可以选择生成的PDF,然后可以从模式中打印生成的PDF

如果响应为500,则打印模式将不会打开,因为存在内部服务器错误

在一个场景中,即使服务器响应为500,也会生成PDF,但“打印模式”没有显示,因为这不是“200”OK响应。打印模式没有出现。这个问题确实是断断续续的

问题: 在调试问题时,查找500错误的根本原因

在事件查看器中,我可以看到此特定API请求的“OperationCanceledException”。

我浏览了一些关于查找“OperationCanceledException”根本原因的文章

在大多数情况下,一般的观点是,这可能是由于客户端关闭了浏览器发送取消令牌的浏览器窗口。 但事实并非如此,我无法重现这个问题

此外,对于不同的API,事件查看器日志中有很多“OperationCanceledException”,但对于这些API,我们并没有真正被阻止。这也说明了用户没有关闭浏览器窗口,而且这种情况不会发生在某些用户身上,因为某些用户可能会出现浏览器问题

有人有任何意见来解决这个问题吗?或者你们能告诉我这个问题的前进方向或者调试这个问题的技巧吗

当网络中存在丢包时,是否会发生此问题


注意:这是一个服务器问题,我们正在使用的客户端技术堆栈应该无关紧要。

这很可能是超时OK。我怎样才能证明它只是因为超时才发生的。你能给我指一下要检查应用程序的任何地方吗?这样我就可以确认这是因为超时了,而且我已经验证了IIS日志,并且这个请求在24秒内得到了响应,这几乎相当于有200个响应代码的同一个请求。这里有一些很好的提示。这似乎是因为客户端取消了请求。您能提供一些代码吗?你是如何使用线程的?在这段代码中是否有您试图访问的任何类型的公共文件?