C#无法连接到远程服务器(WebException,SocketException)

时间:2018-06-12 08:10:08

标签: c# asp.net server dotnet-httpclient

我尝试将一些数据从网站发布到网络服务,但我得到了这些例外:

  

System.AggregateException:Une ou plusieurs erreurs se sont produites。 --->       System.Net.Http.HttpRequestException:发送时发生错误       请求。 ---> System.Net.WebException:无法连接到远程服务器       ---> System.Net.Sockets.SocketException:连接尝试失败,因为已连接       一段时间后,由于连接的主机未能响应,因此一方没有正确响应或建立连接失败52.211.194.210:443       àSystem.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)       àSystem.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,       插座s4,插座s6,插座& socket,IPAddress&地址,ConnectSocketState       state,IAsyncResult asyncResult,Exception&例外)       --- Fin de la trace de la pile d'exception interne ---       àSystem.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult,       TransportContext&安培;上下文)       àSystem.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)        --- Fin de la trace de la pile d'exception interne ---       --- Fin de la trace de la pile d'exception interne ---       àSystem.Threading.Tasks.Task`1.GetResultCore(布尔值       waitCompletionNotification)       àldspoPunchout.ldspoPunchout.PostXMLData(String destinationUrl,String         requestXml)         ---> (例外互联网#0)System.Net.Http.HttpRequestException:错误        发送请求时发生。 ---> System.Net.WebException:       不可能的远程连接器--->       System.Net.Sockets.SocketException:Une tentative de connexionaéchouécar       auparticonnectén'appaséponduconvenablementau-delàd'unecertaine       duréeouuneconnexionétablieaéchouécarl'hôtedeconnexion n'a pas       répondu52.211.194.210:443       àSystem.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)       àSystem.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,       插座s4,插座s6,插座& socket,IPAddress&地址,ConnectSocketState       state,IAsyncResult asyncResult,Exception&例外)       --- Fin de la trace de la pile d'exception interne ---       àSystem.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult,       TransportContext&安培;上下文)       àSystem.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult)       AR)       --- Fin de la trace de la pile d'exception interne ---< ---

我的代码很简单,可以在多个站点中使用:

            byte[] data = Encoding.ASCII.GetBytes(requestXml);
            ByteArrayContent byteArray = new ByteArrayContent(data);
            HttpResponseMessage reponse = client.PostAsync(destinationUrl, byteArray).Result;
            Stream stream = reponse.Content.ReadAsStreamAsync().Result;
            StreamReader reader = new StreamReader(stream);
            Test = reader.ReadToEnd();

此代码使用httpclient,但我也尝试过webrequest,同样的问题

环境:Windows Server 2012 R2标准

我无法访问网络服务的代码,但它是一个HTTPS

我很困惑因为在我的本地机器上(Windows 10)我可以浏览,发布,获取网址,甚至在服务器上我可以使用IE浏览网址并且它没有代理设置

编辑:忘了提及我可以从服务器在其他网站上发帖!

我认为这是一个超时但是在添加这些行时:

            client.Timeout = TimeSpan.FromMilliseconds(Timeout.Infinite);

      client.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
            client.DefaultRequestHeaders.Add("Keep-Alive", "3600");
无论我设定了多少时间,它都没有变化,而且相当快(如15秒) 并尝试了我读过的各种其他事情:

              ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 
           | SecurityProtocolType.Tls11;
            client.DefaultRequestHeaders.ExpectContinue = false;

如果有人知道这会来自哪里,那就太棒了

提前致谢

编辑:我创建像这样的webrequest

                Logger.Log(xml + "                 " + url);
                var webRequest = WebRequest.Create(url);
                PostXMLData(url, xml); 
                return url + "  :  " + Test;

http客户端设置为更高级别:

       public static readonly HttpClient client = new HttpClient();

0 个答案:

没有答案