页面加载时获取“现有连接被远程主机强制关闭”,但重新加载时没有

Posted

技术标签:

【中文标题】页面加载时获取“现有连接被远程主机强制关闭”,但重新加载时没有【英文标题】:Getting a "an existing connection was forcibly closed by the remote host" when page loads but not when it reloads 【发布时间】:2022-01-14 11:13:50 【问题描述】:

这适用于进行 HttpClient PostAsync() 调用的 C# Asp.net Web 窗体应用程序。第一次加载页面时,我收到“现有连接被远程主机强行关闭”错误。然后,当我重新加载页面时,它不会出现错误并且可以正常工作。我在网上没有找到类似的案例。有什么想法吗?

 protected void Page_Load(object sender, EventArgs e)
  
    HttpClient client = new HttpClient();

    string sessionId = GetSessionId(client); 
 
  public static string GetSessionId(HttpClient client)
    
        var parameters = new Dictionary<string, string>   "userName", "*******" ,  "password", "********" ,  "orgId", orgId ,  "devKey", devKey  ;
        var sessionId = "";
        parameters.Add("Content-Type", "application/x-www-form-urlencoded");
        var encodedContent = new FormUrlEncodedContent(parameters);

        var task = Task.Run(() => client.PostAsync(login_uri, encodedContent));

        task.Wait();

        var response = task.Result;

        var content = response.Content;

        var task2 = Task.Run(() => content.ReadAsStringAsync());
        task2.Wait();
        var result = task2.Result;

        var payload = JObject.Parse(result);

        sessionId = payload["response_data"]["sessionId"].ToString(); ;

        return sessionId;
    

【问题讨论】:

如果没有真正看到您在做什么,我们将无法帮助您。 您应该为您的问题提供相关代码。你可以在这里看到如何提出一个好问题:***.com/help/how-to-ask 好的,感谢您的反馈。 【参考方案1】:

对类似帖子的回答对我有用。我刚刚加了

System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

【讨论】:

以上是关于页面加载时获取“现有连接被远程主机强制关闭”,但重新加载时没有的主要内容,如果未能解决你的问题,请参考以下文章

如何将基于套接字的客户端与 WCF (net.tcp) 服务一起使用?

Python web scraper,使用 BeautifulSoup 我的链接有问题,链接现在将成为标题故事,但重定向到档案页面

(403) 放置时出现禁止错误,但重试时成功

如果文件名是默认值,SSH 密钥有效,但重命名时无效

Magento Paypal 下订单但重定向不正确

页面加载时获取位置