【发布时间】:2019-07-14 18:11:03
【问题描述】:
我正在使用以下代码对外部应用程序执行 POST 请求。此请求源自 .NET MVC 应用程序的控制器。
using(HttpClient postClient = new HttpClient())
{
postClient.DefaultRequestHeaders.Add("Connection", "close");
postClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", username, password)))));
postClient.DefaultRequestHeaders.Add("Crumb", crumb);
HttpResponseMessage response = await postClient.PostAsync("url", httpContent);
response.EnsureSuccessStatusCode();
}
这会导致以下堆栈跟踪:
[SocketException (0x2745): 已建立的连接被 主机中的软件]
[IOException:无法从传输连接读取数据:一个 已建立的连接被主机中的软件中止 机器。]
[HttpRequestException: 将内容复制到流时出错。]
由于公司政策,我删除了详细行,如果需要,我可以将省略的信息添加回来。我阅读了将连接设置为关闭可能会解决问题,但这并没有帮助。有没有其他解决办法?
【问题讨论】:
-
尝试不使用 using 块
标签: c# .net timeout httpclient