SocketException:连接尝试失败,因为经过一段时间在Windows 7 SP 1上被连接方未正确响应

Teo230

我为客户开发了WPF应用程序。我在Windows 10上使用.NET Framework 4.7.2在Visual Studio 2019上开发了它。

客户有不同的操作系统,例如Windows 7 SP 1:问题是此操作系统。

当我在Windows 7上运行该应用程序时,一切正常,但在“登录”表单上,HttpRequest发生异常,并出现此错误

System.AggregateException
  HResult=0x80131500
  Message=One or more errors occurred.
  Source=mscorlib
  StackTrace:
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at Project.Services.HttpClientService.Post[T](String server, String url, Object content, AuthenticationType authenticationType, String token, String apiKey) in C:\DEV\project\class.cs:line 65

  This exception was originally thrown at this call stack:
    [External Code]

Inner Exception 1:
HttpRequestException: An error occurred while sending the request.

Inner Exception 2:
WebException: Unable to connect to the remote server

Inner Exception 3:
SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 10.*.*.*:8080

[我隐藏了有意义的数据,例如项目名称或IP]

我阅读了Microsoft提供的一些文档,并尝试了该文档,例如SSL / TLS协议修复或停用了防火墙

这是我用来检索数据的代码

public T Post<T>(string server, string url, dynamic content, EnumDictionary.AuthenticationType authenticationType, string token = null, string apiKey = null)
        {
            using (var httpClient = new HttpClient())
            {
                new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Automatic };
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;

                httpClient.BaseAddress = new Uri(server);

                switch (authenticationType)
                {
                    case EnumDictionary.AuthenticationType.Basic:
                        httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", token);
                        break;
                    case EnumDictionary.AuthenticationType.Bearer:
                        httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
                        break;
                    case EnumDictionary.AuthenticationType.None:
                        break;
                    default:
                        break;
                }

                if (apiKey != null)
                    httpClient.DefaultRequestHeaders.Add("APIKey", apiKey);

                HttpResponseMessage result;

                try
                {
                    result = httpClient.PostAsync(url, new StringContent(content.ToString(), Encoding.UTF8,
                            "application/json")).Result;
                }
                catch (SocketException sexc)
                {
                    throw new Exception("Socket Error");
                }

                if (result.IsSuccessStatusCode)
                {
                    var resultString = result.Content.ReadAsStringAsync().Result;
                    return JsonConvert.DeserializeObject<T>(resultString);
                }
                else
                {
                    if (result.StatusCode == System.Net.HttpStatusCode.Unauthorized)
                        throw new UnauthorizedException();
                    throw new Exception("Call failure");
                }
            }
        }
Teo230

我使用从此帖子中找到的代码进行修复

根据验证步骤,远程证书无效

[Obsolete("Do not use this in Production code!!!",true)]
static void NEVER_EAT_POISON_Disable_CertificateValidation()
{
    // Disabling certificate validation can expose you to a man-in-the-middle attack
    // which may allow your encrypted message to be read by an attacker
    // https://stackoverflow.com/a/14907718/740639
    ServicePointManager.ServerCertificateValidationCallback =
        delegate (
            object s,
            X509Certificate certificate,
            X509Chain chain,
            SslPolicyErrors sslPolicyErrors
        ) {
            return true;
        };
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

连接错误:连接尝试失败,因为一段时间后被连接方未正确响应

来自分类Dev

连接尝试失败,因为连接的方做了一段时间后没有正确响应 - VB

来自分类Dev

Windows Update未提供Windows 7 SP1

来自分类Dev

通过GMail发送电子邮件:连接尝试失败,因为被连接方未正确响应

来自分类Dev

我无法在Windows 7上安装SP1

来自分类Dev

Internet上的WOL成功了一段时间,但一段时间后失败了

来自分类Dev

一段时间后,KeepAlived + HAProxy的连接被拒绝

来自分类Dev

SSH:闲置一段时间后重置连接

来自分类Dev

从Windows 7 SP1计算机连接到Samba共享

来自分类Dev

Windows 7 Professional SP1上的IBM MQ Client 9.0安装失败

来自分类Dev

一段时间后访问令牌连接失败,登录失败 NT AUTHORITY\ANONYMOUS LOGON 错误

来自分类Dev

如何将蓝牙耳机(Bose QuietComfort 35 I)连接到计算机(Windows 7 SP1 x64)?错误消息:“连接失败”

来自分类Dev

Python,如果条件是经过一段时间

来自分类Dev

DllImport在Windows XP SP3上失败,但在Windows 7上工作

来自分类Dev

如何诊断Windows 7机器运行缓慢(仅在启动后一段时间)?

来自分类Dev

在Windows 7 SP1上安装Visual Studio Community 2015

来自分类Dev

在Windows 7 32bit SP1上安装Python 3.8

来自分类Dev

安装程序无法识别Windows 7上的.Net Framework 3.5 SP1

来自分类Dev

如何绕过未能在Windows 7上安装的Visual Studio 2005 SP1?

来自分类Dev

我们的c ++ DLL的代码部分在Windows 7 SP1上崩溃了

来自分类Dev

Windows 7 SP1无法识别SHA-256 * .exe时间戳文件签名

来自分类Dev

我是否需要Windows 7 SP1密钥才能使用SP1安装程序?

来自分类Dev

openvpn连接一段时间后,所有连接都将丢失

来自分类Dev

蓝牙Logitech超薄触摸鼠标无法连接(或在一段时间后断开连接)

来自分类Dev

一段时间后,WebSocket 连接无法重新连接

来自分类Dev

如何使用soinger保持服务器连接一段时间

来自分类Dev

一段时间后,由于某种原因在Rabbitmq中关闭了连接

来自分类Dev

一段时间后,TCP服务器不接受连接

来自分类Dev

在iOS中保持应用闲置一段时间后,SRWebsocket连接会自动关闭

Related 相关文章

  1. 1

    连接错误:连接尝试失败,因为一段时间后被连接方未正确响应

  2. 2

    连接尝试失败,因为连接的方做了一段时间后没有正确响应 - VB

  3. 3

    Windows Update未提供Windows 7 SP1

  4. 4

    通过GMail发送电子邮件:连接尝试失败,因为被连接方未正确响应

  5. 5

    我无法在Windows 7上安装SP1

  6. 6

    Internet上的WOL成功了一段时间,但一段时间后失败了

  7. 7

    一段时间后,KeepAlived + HAProxy的连接被拒绝

  8. 8

    SSH:闲置一段时间后重置连接

  9. 9

    从Windows 7 SP1计算机连接到Samba共享

  10. 10

    Windows 7 Professional SP1上的IBM MQ Client 9.0安装失败

  11. 11

    一段时间后访问令牌连接失败,登录失败 NT AUTHORITY\ANONYMOUS LOGON 错误

  12. 12

    如何将蓝牙耳机(Bose QuietComfort 35 I)连接到计算机(Windows 7 SP1 x64)?错误消息:“连接失败”

  13. 13

    Python,如果条件是经过一段时间

  14. 14

    DllImport在Windows XP SP3上失败,但在Windows 7上工作

  15. 15

    如何诊断Windows 7机器运行缓慢(仅在启动后一段时间)?

  16. 16

    在Windows 7 SP1上安装Visual Studio Community 2015

  17. 17

    在Windows 7 32bit SP1上安装Python 3.8

  18. 18

    安装程序无法识别Windows 7上的.Net Framework 3.5 SP1

  19. 19

    如何绕过未能在Windows 7上安装的Visual Studio 2005 SP1?

  20. 20

    我们的c ++ DLL的代码部分在Windows 7 SP1上崩溃了

  21. 21

    Windows 7 SP1无法识别SHA-256 * .exe时间戳文件签名

  22. 22

    我是否需要Windows 7 SP1密钥才能使用SP1安装程序?

  23. 23

    openvpn连接一段时间后,所有连接都将丢失

  24. 24

    蓝牙Logitech超薄触摸鼠标无法连接(或在一段时间后断开连接)

  25. 25

    一段时间后,WebSocket 连接无法重新连接

  26. 26

    如何使用soinger保持服务器连接一段时间

  27. 27

    一段时间后,由于某种原因在Rabbitmq中关闭了连接

  28. 28

    一段时间后,TCP服务器不接受连接

  29. 29

    在iOS中保持应用闲置一段时间后,SRWebsocket连接会自动关闭

热门标签

归档