猿问

使用HttpClient访问服务时出现SocketException(0x274c)

我在请求(PostAsync)3次到该服务的这段代码中有一个httpClient代码段;


private async Task<Data> SendRequestToTheService(string searchTerm)

{

    using (var client = new HttpClient())

    {

        client.BaseAddress = new Uri(baseUrl);


        Response response = new Response();


        await Step1(param1, client);


        await Step2(param1, param2, client);


        response = await Step3(param, client);

        return response;

    }

}

如您所见,在步骤内部,我向同一服务发送了一个request(postAsync)。


在我当地,一切运行得井井有条。我得到了成功的回应。


但是,当我将代码部署到服务器时,它可以工作几次,然后返回下面的服务器错误。


连接尝试失败,因为一段时间后连接方未正确响应,或者建立的连接失败,因为连接的主机未能响应xxx.xx.xx.xxx:443


堆栈跟踪


[ SocketException(0x274c):失败,因为连接的方做了一段时间后没有正确响应或已建立的连接失败,因为连接的主机未能响应xxx.xx.xx.xxx:443连接尝试]

的System.Net.Sockets .Socket.EndConnect(IAsyncResult asyncResult)+8439919 System.Net.ServicePoint.ConnectSocketInternal(布尔值connectFailure,Socket s4,Socket s6,Socket&套接字,IPAddress&地址,ConnectSocketState状态,IAsyncResult asyncResult,异常和异常)+315


[ WebException:无法连接到远程服务器]

System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult,TransportContext&context)+322

System.Net.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)+137


[ HttpRequestException:发送请求时发生错误。]

System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+31

System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+60 AAA.XXXX.Mvc.Controllers.d__14.MoveNext()在C:\ Projects \ AAA中。 XXXX \ src \ AAA.XXXX.Mvc \ Controllers \ SearchController.cs:276 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+31

System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)+60

AAA.XXXX.Mvc C:\ Projects \ AAA.XXXX \ src \ AAA.XXXX.Mvc \ Controllers \ SearchController.cs:192 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中的.Controllers.d__11.MoveNext()+31

System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务

我检查了许多有关套接字错误(0x274c)的主题,但没有找到对我有用的解决方案。我的服务器上可能有与网络相关的错误,但我没有解决。


慕少森
浏览 537回答 1
1回答

HUH函数

我解决了问题。网络人员向服务器添加了一个负载平衡器,并且如果应用程序使用了不在服务中白名单的其他池IP,那么我们就会遇到此异常。感谢您的评论,时间和帮助。
随时随地看视频慕课网APP
我要回答