从HttpClient.Result获取HttpResponseMessage时使用https会引发错误

时间:2018-08-28 22:21:24

标签: c# .net

我有以下代码,其中控制器中的服务调用另一个控制器中的服务:

[Route("Employees")]
[HttpGet]
public async Task<HttpResponseMessage> TCPEmployeeAsync()   
{            
    StringBuilder uri = new StringBuilder();
    uri.Append(ApiHelper.GetHost(this.Request));
    uri.Append("/HumanResources/Employees");
    uri.Append("?fields=id,fname,lname,email");

    HttpClient client = new HttpClient();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    //This is where it gives error when uri contains https//
    HttpResponseMessage response = client.GetAsync(uri.ToString()).Result; 

    return response;
}

这只是部署在DMZ服务器中,当我们使用http://localhost....时可以正常工作,但是当我们使用https://example.domain.com/...时,它会出现以下异常

  

System.Net.Sockets.SocketException:连接尝试失败,因为       关联方在一段时间后未正确响应,或者       建立连接失败,因为c       在System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)       在System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,       套接字s4,套接字s6,套接字和套接字,IP地址和地址,ConnectSocketState       状态,IAsyncResult,asyncResult,Exception&异常)

可能是什么问题?我所有的证书都已经到位并且是最新的,并且还尝试在服务器中禁用TLS / SSL,但这没有用。任何帮助将不胜感激。谢谢。

0 个答案:

没有答案