El servicio de aplicaciones web de Azure llamará a la API WEB onpremise usando HttpClient usando el administrador de conexión híbrido

Tenemos un servicio web integral (asp.net core mvc) implementado en una máquina de red local. Estamos tratando de llamar a estas API WEB utilizando el Servicio de aplicaciones implementado en Azure. Pero está dando error de tiempo de espera oTarea cancelada error en caso de que intentemos conectarlo usando el protocolo "HTTP". En caso de "HTTPS" está dando "error de seguridad ocurrió error".

Hemos creado una conexión híbrida en Azure App Service para conectarse al servicio de API web onpremise que se muestra en línea para los puertos 80 y 443. También hemos configurado Hybrid Connection Manager en la máquina de la red local.

A continuación se muestra el fragmento de código para llamar al código que se implementa en Azure App Service (p. Ej.https://xyz.azurewebsite.com)

 try
 {
    var httpClient = new HttpClient();
    httpClient.Timeout = TimeSpan.FromMinutes(60);
    httpClient.BaseAddress = new Uri("https://onpremise");
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
    ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
    //Simple Get Request to test on-premise service
    var response = await httpClient.GetStringAsync("api/OnPremiseData/GetData");
    ViewBag.ResponseText = response;
 }

El código anterior funciona bien en caso de que depure la aplicación de localhost. Así que no hay problema con el código, supongo.

A continuación se muestra el fragmento de código de la API web:

[Route("api/[controller]/[action]")]
public class OnPremiseDataController : Controller
{        
  [HttpGet]
  public string GetData()
  {
    return "Success";
  }
}

y debajo está el archivo startup.cs

public void ConfigureServices(IServiceCollection services)
{
  services.AddCors();
  services.AddMvc();            
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
  app.UseCors(options => options.WithOrigins("https://xyz.azurewebsite.com", "https://localhost:44310").AllowAnyMethod().AllowAnyHeader());
  if (env.IsDevelopment())
  {
    app.UseDeveloperExceptionPage();
  }            
  app.UseMvc();                
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta