Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 54622|Відповідь: 0

[Джерело] .NET Core викликає рішення помилок адреси gRPC HTTP (не захищені TLS)

[Копіювати посилання]
Опубліковано 2021-3-22 16:45:16 | | | |
gRPC — це високопродуктивний фреймворк віддаленого виклику процедур (RPC), який не залежить від мови.

Основні переваги gRPC такі:

Сучасний, високопродуктивний, легкий фреймворк RPC.
Розробка API, орієнтована на контракт, яка за замовчуванням використовує буфери протоколів, що дозволяє реалізувати, незалежні від мови.
Інструменти, доступні кількома мовами для генерації сильно типізованих серверів і клієнтів.
Підтримує клієнтські, серверні та двосторонні потокові дзвінки.
Зменшити використання мережі за допомогою бінарної серіалізації Протобуфа.

Ці переваги роблять gRPC придатним для:

Легкі мікросервіси, де ефективність критична.
Поліглотні системи, які потребують кількох мов для розробки.
Peer-to-peer сервіси реального часу, які мають обробляти потокові запити або відповіді.

Огляд:
Практичний бій: ASP.NET Core використовує комунікацію через gRPC
https://www.itsvse.com/thread-8834-1-1.html

.net/c# Швидкий старт буферів протоколу Google
https://www.itsvse.com/thread-3626-1-1.html

.net/c# Урок з буферів протоколу Google
https://www.itsvse.com/thread-3668-1-1.html

При використанні ASP.NET Core 3.1 увімкнено сервіс gRPC, а кінцева точка HTTP/2 налаштовується без захисту TLS, див. також:Вхід за гіперпосиланням видно.

Використовуючи консоль .NET Core 3.1, я спробував викликати адресу сервісу HTTP gRPC з такою помилкою:


Невирішений виняток. Grpc.Core.RpcException: Status(StatusCode="Недоступно", Detail="Помилка, що запускає виклик gRPC. HttpRequestException: Під час відправлення запиту виникла помилка. IOException: Відповідь закінчилася передчасно.", DebugException="System.Net.Http.HttpRequestException: Під час відправлення запиту виникла помилка.
---> System.IO.IOException: Відповідь закінчилася передчасно.



Залежно від версії .NET, яку використовує ваш додаток, існують додаткові вимоги для виклику незахищеного сервісу gRPC:

.NET 5 або новіші версії потребують Grpc.Net.Client версії 2.32.0 або новіші.
.NET Core 3.x потребує додаткової конфігурації. Додаток повинен встановити комутатор System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport у true:


Налаштування клієнта такі:

Тільки .NET Core 3.x потребує комутатора System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport. У .NET 5 не потрібна додаткова конфігурація, як і ця вимога не є


Вхід за гіперпосиланням видно.





Попередній:.NET/C# Тестування продуктивності відображення, випромінювання, експресії
Наступний:Пізні звіти новачків
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com