Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 54622|Risposta: 0

[Fonte] .NET Core chiama soluzioni di errore di indirizzi gRPC HTTP (non protette TLS)

[Copiato link]
Pubblicato il 22-03-2021 16:45:16 | | | |
gRPC è un framework ad alte prestazioni per chiamate di procedura remota (RPC) che è indipendente dal linguaggio.

I principali benefici del gRPC sono:

Framework RPC moderno, ad alte prestazioni e leggero.
Sviluppo API contrattuale che utilizza di default i protocol buffer, consentendo implementazioni indipendenti dal linguaggio.
Strumenti disponibili in più lingue per generare server e client fortemente tipizzati.
Supporta chiamate in streaming client, server e bidirezionale.
Ridurre l'uso della rete con la serializzazione binaria Protobuf.

Questi benefici rendono gRPC adatto per:

Microservizi leggeri dove l'efficienza è fondamentale.
Sistemi poliglotti che richiedono più linguaggi per lo sviluppo.
Servizi peer-to-peer in tempo reale che devono gestire richieste o risposte in streaming.

Recensione:
Combattimento pratico: ASP.NET Core utilizza la comunicazione gRPC
https://www.itsvse.com/thread-8834-1-1.html

.net/c# Avvio rapido dei buffer del protocollo Google
https://www.itsvse.com/thread-3626-1-1.html

Tutorial sui buffer del protocollo di .net/c#
https://www.itsvse.com/thread-3668-1-1.html

Quando si utilizza ASP.NET Core 3.1, viene abilitato un servizio gRPC e l'endpoint HTTP/2 è configurato senza protezione TLS, vedi:Il login del link ipertestuale è visibile.

Usando la console .NET Core 3.1, ho provato a chiamare l'indirizzo HTTP gRPC con il seguente errore:


Eccezione non risolta. Grpc.Core.RpcException: Status(StatusCode="Non disponibile", Detail="Errore avvio chiamata gRPC. HttpRequestException: Si è verificato un errore durante l'invio della richiesta. IOException: La risposta è terminata prematuramente.", DebugException="System.Net.Http.HttpHttpRequestException: Si è verificato un errore durante l'invio della richiesta.
---> System.IO.IOException: La risposta si è conclusa prematuramente.



A seconda della versione di .NET che utilizza la tua app, ci sono alcuni requisiti aggiuntivi per chiamare un servizio gRPC insicuro:

.NET 5 o successive richiedono Grpc.Net.Client versione 2.32.0 o successiva.
.NET Core 3.x richiede una configurazione aggiuntiva. L'app deve impostare l'interruttore System.Net.Http.SocketsHttpHttpHandler.Http2UnencryptedSupport su true:


Le impostazioni del client sono le seguenti:

Solo .NET Core 3.x richiede lo switch System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport (System.NET Core 3.x). Non è richiesta alcuna configurazione aggiuntiva in .NET 5, né questo requisito


Il login del link ipertestuale è visibile.





Precedente:Test delle prestazioni di riflessione, emissione e espressione .NET/C#
Prossimo:Riferimenti di arrivo tardi
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com