C# Azure web应用程序-";HttpClient无法连接到远程服务器;

C# Azure web应用程序-";HttpClient无法连接到远程服务器;,c#,.net,azure,azure-web-app-service,C#,.net,Azure,Azure Web App Service,我试图在azure web应用程序中使用HttpClient发出请求,但出现错误:无法连接到远程服务器 如果我打开kudu控制台,我可以使用以下命令成功发出请求: Invoke-RestMethod -Uri https://mydomain/myendpoint 当我在本地运行该程序时,它可以工作 当我在azure web应用程序中运行该程序时,它不起作用 HttpClient _client; public MyHttpClient() { _client = new

我试图在azure web应用程序中使用
HttpClient
发出请求,但出现错误:
无法连接到远程服务器

如果我打开kudu控制台,我可以使用以下命令成功发出请求:

Invoke-RestMethod -Uri https://mydomain/myendpoint
当我在本地运行该程序时,它可以工作

当我在azure web应用程序中运行该程序时,它不起作用

HttpClient _client;        

public MyHttpClient() {
  _client = new HttpClient();
  _client.BaseAddress = new System.Uri(ConfigurationManager.AppSettings["MyUri"]);          
  _client.DefaultRequestHeaders.Accept.Clear();            
  _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));        }

//...

  var path = "/myendpoint";
  var data = new Dictionary<string, string>();        
  data.Add("param1", value);        
  var response = await _client.PostAsJsonAsync(path, data);

但它没有任何效果。

您无法从Azure Web App直接呼叫您的内部部署服务。为此,您需要混合连接管理器。请看下面的帖子:


看看这里:我认为问题主要是因为TLS协议。在进行“PostAsJsonAsync”调用之前,您可能需要明确设置此选项。检查@locengineerini提供的链接,我得到了以下信息:“'HttpClientHandler'不包含'SslProtocols'的定义”`请验证是否已将此命名空间/包添加到project System.Net.Http中,版本=4.2.0.0
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | 
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
            ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;