【发布时间】:2016-02-11 18:36:45
【问题描述】:
http(tcp) 请求可能会在没有通知侦听器的情况下丢失是有效的行为。看到这里的讨论: C# httpClient (block for async call) deadlock
问题 我们正在使用 HttpClient.PostAsJsonAsync 将 Json 文件上传到服务器。但是,在最坏的情况下,此上传可能需要几个小时。 这就是为什么只使用 HttpClient.Timeout 对我们不起作用。这是一个硬超时,我们需要让它很大。
那么当 tcp 连接消失并且客户端没有检测到时我们该怎么办。由于我们巨大的超时,我们被困了很长时间。那么在这种情况下我们可以使用任何其他超时吗?还有其他想法或最佳实践吗? 我也在研究 tcp sockets keep alive,但这似乎不是一个选择。
【问题讨论】:
标签: c# asp.net-web-api timeout dotnet-httpclient