146 messaggi dal 05 maggio 2005
Buongiorno a tutti,

abbiamo un problema che riguarda il consumo di un servizio REST tramite chiamata POST, che funziona con Postman dal server stesso, da una server Windows Server 2012 R2 e .NET Framework 4.8 con TLS 1.2.

L'errore restituito è questo:

The request was aborted: Could not create SSL/TLS secure channel. 

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

   at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)


Il codice utilizzato è invece questo:


ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 

          using (HttpClient client = new HttpClient()) 

          { 

            client.BaseAddress = new Uri(this.Settings.Request.BaseAddress); 

            if (this.Settings.Authentication.Required) 

            { 

              byte[] bytes = Encoding.ASCII.GetBytes(this.Settings.Authentication.UserName + ":" + this.Settings.Authentication.Password); 

              client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(bytes)); 

            } 

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

            string jsonContent = File.ReadAllText(file.FullName, encoding); 

            this.Logs.Add("Invio del file: " + jsonContent, false); 

            StringContent content = new StringContent(jsonContent, encoding, "application/json"); 

            HttpResponseMessage response = await client.PostAsync(this.Settings.Request.Endpoint, content); 

            if (response.IsSuccessStatusCode) 

            { 

              ResponseResult responseResult = JsonSerializer.Deserialize<ResponseResult>(response.Content.ReadAsStringAsync().Result); 

              switch (responseResult.ResponseType) 

              { 

                case ResponseResult.eResponseType.OK: 

                  this.Logs.Add("File " + file.Name + " inviato correttamente: " + responseResult.detail, false); 

                  break; 

                case ResponseResult.eResponseType.KO: 

                  internalResult.SetError(responseResult.detail, (eTypeResult)8); 

                  this.Logs.Add("File " + file.Name + " non inviato: " + responseResult.detail, true); 

                  break; 

                case ResponseResult.eResponseType.WARNING: 

                  this.Logs.Add("File " + file.Name + " inviato (WARNING) : " + responseResult.detail, false); 

                  break; 

              } 

            } 

            else 

            { 

              string responseContent = await response.Content.ReadAsStringAsync(); 

              if (string.IsNullOrWhiteSpace(responseContent)) 

              { 

                responseContent = response.ToString(); 

              } 

              internalResult.SetError(responseContent, (eTypeResult)); 

            } 

          }


Lo stesso identico software funziona su Windows Server 2016.

Abbiamo provato a cambiare le varie chiavi di registro come indicato nei diversi documenti trovati online, ma nulla cambia e l'errore rimane.

Vorremmo capire se esiste qualche modo per gestire questa connessione su Server 2012 R2 oppure no.

Grazie
289 messaggi dal 08 luglio 2008
Anche io riscontro lo stesso problema. Su windows server 2012 R2 una web application in asp.net 4.5.2 riceve lo stesso errore. Su windows server 2016 (o banalmente anche in locale su win10) funziona correttamente.
Da cosa può dipendere?

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.