【问题标题】:C# HttpClient Connection AbortedC# HttpClient 连接中止
【发布时间】: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


【解决方案1】:

抱歉,我没有 50 名声望来添加评论。

该错误不是由您的代码引起的。在调试时,某些东西最终阻止了您程序的 http 流。

所以关闭/关闭您的防病毒和防火墙,然后重试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多