我正在使用以下代码对外部应用程序执行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:无法从传输连接中读取数据:An 主机中的软件中止了已建立的连接 机器。]
[HttpRequestException:将内容复制到流时出错。]
由于公司政策,我删除了详细的行,如果需要,可以添加省略的信息。我读到将连接设置为关闭可能会解决问题,但这没有帮助。还有其他解决方案吗?
答案 0 :(得分:0)
对不起,我没有50条声誉可以添加评论。
该错误不是由您的代码引起的。最终在调试时阻止了程序的http流。
因此,请关闭/关闭防病毒和防火墙,然后重试。