我正在使用.NET和C#。我正在通过foreach
循环解析消息列表,将这些消息逐个(根据端点要求)发送到目标端点,如下所示:
foreach (var item in list)
{
HttpContent content = new StringContent(Json.Convert.SerializeObject(item), Encoding.UTF8, "application/json");
HttpResponseMessage response = await _httpClient.PostAsync(uriLink, content);
response.EnsureSuccessStatusCode();
}
但是,当我发送消息时,我得到的结果不一致,其中有三种情况之一发生:
1)消息发送成功
2)消息错误并返回:“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应”
3)消息错误并返回:“无法从传输连接读取数据:远程主机强行关闭现有连接”
我无法弄清楚我的生活有什么不对或为什么会失败。我认为它可能是我们系统的代理问题,但不知道如何对上述响应消息应用旁路。
为了进一步激怒问题,目标端点不在同一环境中,我的团队也无法访问它。但为了更好地了解正在发生的事情,有关服务的基本结构是:
Endpoint A Sends Msgs -> System Receives and Parses Msgs -> System Sends Msgs to Appropriate Endpoint -> Endpoint B (target) Receives Msgs
在我的测试中,我尝试将最少5条消息发送到多达120条消息,但结果永远不会相同,通常不同于:所有失败,大约一半失败,一些失败或没有失败。
我还查看了几个帖子和其他论坛,但大多数仅仅是HttpRequestMessage
,不够接近我的问题,或者是无法解决的问题。
是否有人知道可能导致这些零星问题的原因以及在这种情况下如何最好地解决/解决这些问题?