这是有效的行为,HTTP(tcp)请求可能会丢失,而不通知侦听器。在这里看到的是,讨论: C# httpClient (block for async call) deadlockC#HttpClient Post选择正确的超时
问题 我们正在使用HttpClient.PostAsJsonAsync上传JSON文件到服务器。但是,在最坏的情况下,这种上传可能需要几个小时。 这就是为什么只使用HttpClient.Timeout不适合我们的原因。这是一个艰难的超时时间,我们需要让它变得巨大。
那么当tcp连接结束并且客户端没有检测到时我们该怎么做。由于我们巨大的超时时间,我们长期坚持下去。那么在这种情况下是否还有其他的Timeout?任何其他想法或最佳实践? 我也在寻找tcp套接字保持活着,但这似乎并不是一个选项。