我一直在开发一个为客户端提供一些Web服务的应用程序。MVC应用程序构建在.Net 4.5框架上。在我们查看客户端生成的响应统计数据之前,一切都很好,我们可以看到我们没有100%响应。统计数据显示响应每隔一天就会下降到90%-95%。
检查日志
我做的第一件事是检查我们的应用程序日志,在那里我找不到任何记录的异常。(未处理的)异常,这通常会导致错误的HTTP状态代码,所以没有发现这样的异常让我认为请求根本没有到达应用程序。下一步是检查IIS访问日志,在那里我找不到任何500个错误。我在网络上发生了一些事情,导致500的印象。经过进一步调查,我意识到这些是由IIS服务器生成的。我通过在IIS上设置失败的请求跟踪发现了这一点,过了一段时间,我发现记录了以下错误:
ModuleName -ManagedPipelineError通知- EXECUTE_REQUEST_HANDLER HttpStatus - 500 HttpReason -检索数据时出错HttpSubStatus - 0 ErrorCode -操作成功完成。(0x 0)
我看过各种stackoverflow的帖子,但没有什么真正帮助我。我想这是因为我们每分钟发出的请求没有大约每分钟200个请求)。但我得到了90-95%的请求响应。
Attached detailed error log here
2条答案
按热度按时间z31licg01#
我弄明白了错误是什么。.Net服务器首先没有接收到这些请求,这些请求在网络中丢失了。有一个oracle网关有缺陷,杀死了很少的请求。
dm7nw8vv2#
我有一个类似的案例,一个用angular和asp.net-mvc web API后端创建的网站,网站和后端在不同的主机上响应,所以我们在web API中管理课程,日志和客户端都记录的错误总是HTTP响应,状态码500总是在web API上,发现的端点总是不同的,当问题出现时,如果我们回收应用程序池,错误立即消失。
当错误发生时,总是在OPTIONS类型的请求上。
在结果为500的活动登录请求中,整个管道都被记录下来,并报告错误
字符串
谢谢你的建议