如何诊断来自 Web API 的慢速 HTTPS 请求

Posted

技术标签:

【中文标题】如何诊断来自 Web API 的慢速 HTTPS 请求【英文标题】:How to diagnose slow HTTPS requests from Web API 【发布时间】:2020-06-05 12:00:44 【问题描述】:

我在 Windows Server 2012 R2 上有一个 Web API(ASP.NET Core 3.0、IIS 6.2)。当它向外部 SOAP API 发出 HTTPS 请求时,我在 20 秒后收到代码 500 的响应。我的 API 在日志中写道:

操作超时

异常堆栈跟踪的尾部:

在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)\r\n 在 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果)\r\n 在 System.ServiceModel.Channels.ServiceChannel .EndCall(String action, Object[] outs, IAsyncResult result)\r\n at System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator.c__DisplayClass1_0.b__0(IAsyncResult asyncResult)\r\n--- 堆栈跟踪结束之前抛出异常的位置---

我通过 SoapUI 从同一服务器向外部服务器重复我的 API 请求。 2-3秒后成功。我的 Web API 也可以在我的另一台服务器上运行。

不幸的是,我不知道如何找到问题的原因。请给我一个想法好吗?

【问题讨论】:

WebAPI项目中使用什么方法调用服务,直接构造HTTP请求?我建议你使用代理类或通道工厂来调用服务。 docs.microsoft.com/en-us/dotnet/framework/wcf/…另外请贴出WCF服务器的配置。我会尽力提供一些建议。 【参考方案1】:

我找到了解决方案。我刚刚从 4.4.0 更新了 nuget 包 System.ServiceModel.*,WCF 请求现在可以正常工作了。

https://github.com/dotnet/wcf/issues/2368

【讨论】:

以上是关于如何诊断来自 Web API 的慢速 HTTPS 请求的主要内容,如果未能解决你的问题,请参考以下文章

来自WEB API的ElasticSearch中的索引数据

来自 C# 的 Spotify Web API 没有范围

一站式学习Wireshark第四章

如何使用 IConfidentialClientApplication 获取安全 Web API 的令牌

如何使用 AutoCompleteTextView 并使用来自 Web API 的数据填充它?

Google 广告预览和诊断工具的 API