C# Azure web应用程序-";HttpClient无法连接到远程服务器;
我试图在azure web应用程序中使用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
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;