Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 54622|Odpověď: 0

[Zdroj] .NET Core volá gRPC HTTP (ne-TLS chráněná) řešení chyb adres

[Kopírovat odkaz]
Zveřejněno 22. 3. 2021 16:45:16 | | | |
gRPC je vysoce výkonný rámec pro vzdálené volání procedur (RPC), který je jazykově nezávislý.

Hlavní výhody gRPC jsou:

Moderní, vysoce výkonný, lehký RPC framework.
Vývoj API na základě kontraktu, který ve výchozím nastavení používá protokolové buffery, což umožňuje implementace nezávislé na jazyce.
Nástroje dostupné ve více jazycích pro generování silně typovaných serverů a klientů.
Podporuje klientské, serverové a obousměrné streamovací hovory.
Omezit používání sítě pomocí binární serializace Protobuf.

Tyto výhody činí gRPC vhodným pro:

Lehké mikroservisy, kde je efektivita kritická.
Polyglotické systémy, které vyžadují více jazyků pro vývoj.
Peer-to-peer služby v reálném čase, které musí zpracovávat streamované požadavky nebo odpovědi.

Přezkoumání:
Praktický boj: ASP.NET Core používá komunikaci gRPC
https://www.itsvse.com/thread-8834-1-1.html

.net/c# Google Protocol Buffers – rychlý start
https://www.itsvse.com/thread-3626-1-1.html

.net/c# Návod na Google Protocol Buffers
https://www.itsvse.com/thread-3668-1-1.html

Při použití ASP.NET Core 3.1 je aktivována služba gRPC a HTTP/2 endpoint je konfigurován bez ochrany TLS, viz:Přihlášení k hypertextovému odkazu je viditelné.

Pomocí konzole .NET Core 3.1 jsem se pokusil zavolat HTTP gRPC adresu služby s následující chybou:


Neřešená výjimka. Grpc.Core.RpcException: Status(StatusCode="Nedostupné", Detail="Chyba při spuštění gRPC volání. HttpRequestException: Při odeslání požadavku došlo k chybě. IOException: Odpověď skončila předčasně.", DebugException="System.Net.Http.HttpRequestException: Při odesílání požadavku došlo k chybě.
---> System.IO.IOException: Odpověď skončila předčasně.



V závislosti na verzi .NET, kterou vaše aplikace používá, existují další požadavky na volání nezabezpečené gRPC služby:

.NET 5 nebo novější vyžaduje verzi Grpc.Net.Client 2.32.0 nebo novější.
.NET Core 3.x vyžaduje další konfiguraci. Aplikace musí nastavit přepínač System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport na true:


Nastavení klienta je následující:

Pouze .NET Core 3.x vyžaduje přepínač System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport. V .NET 5 není potřeba žádná další konfigurace, ani tato požadavek není vyžadována


Přihlášení k hypertextovému odkazu je viditelné.





Předchozí:.NET/C# Testování výkonu reflexe, emitu, výrazu
Další:Pozdní zprávy nováčků
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com