我正在使用以下代码对外部应用程序执行发布请求。此请求源自.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:将内容复制到流时错误。]
我由于公司策略而删除了详细的行,我可以在需要的情况下将它们添加回它们。我阅读了设置关闭的连接可能会解决问题,但这无济于事。还有其他解决方案吗?
sry,我没有50个声誉来添加评论。
该错误不是由您的代码引起的。在调试时,某些东西最终阻止了程序的HTTP流。
因此关闭/关闭抗病毒和防火墙,然后重试。