azure - 间歇性 HttpClient 问题 - SslStream 已处理
问题描述
我遇到了一个间歇性的问题HttpClient
。SslStream
它会提前随机处理。它有时每小时发生一次,有时更频繁。我在 Azure Functions 上运行我的代码,它似乎在本地完美运行,但是一旦我在 Azure 上部署它,它就开始失败。我知道的陷阱,HttpClient
因此我IHttpClientFactory
在我的实现中使用它,它被注入到我的 API 中。
我正在使用微服务,这个问题只影响调用另一个 Azure Function 应用程序。
我的HttpClient
超时设置为 5 分钟,Azure Functions 超时设置为最大值。10分钟,但这没有帮助。
错误消息和堆栈如下:
The operation was canceled.. Inner Exception: The read operation failed, see inner exception.. Cannot access a disposed object.
Object name: 'SslStream'.
at System.Net.Security.SslStreamInternal.ReadAsyncInternal[TReadAdapter](TReadAdapter adapter, Memory`1 buffer)
at System.Net.Http.HttpConnection.FillAsync()
at System.Net.Http.HttpConnection.ReadNextResponseHeaderLineAsync(Boolean foldedHeadersAllowed)
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Huedash.Core.HttpClientService.GetAsync[T](String service, String endpoint, ValueTuple`2[] parameters) in C:\_Huedash\HuedashApiGit\HuedashApiCore\Huedash.Core\HttpClientService.cs:line 43
at HuedashConnectorsApp.WarehouseScheduleFunction.WarehouseDownload(Vendor vendor, IConfiguration configuration, IHttpClientService client, ILogger log) in C:\_Huedash\HuedashBackendGit\HuedashBackendCore\Huedash.ConnectorsApp\WarehouseScheduleFunction.cs:line 140
解决方案
推荐阅读
- javascript - JavaScript 比较两个具有相同 ID 的元素,如果它们的内容不同,则为它们设置样式
- sql - 如何修复 sql 中的“ORA-02270:此列列表没有匹配的唯一键或主键”错误
- python - 子类实例的类型提示
- c - 分段故障恢复 HashTable 值
- javascript - 在 React Native 中授予权限
- xpath - 使用 importxml 在 Google 表格中提取当前价格、交易量和平均交易量的 XPath 查询
- symfony - 从单个对象下载多个文件
- java - 捕获异常后方法可以再次调用自己吗?
- python - Elasticsearch 7.0:过滤 must_not 查询错误
- database - 如何使用 ColdFusion 检查数据库的值?