Можно ли использовать gRP C с HTTP / 1.1 in. NET Core? - PullRequest
3 голосов
/ 16 января 2020

У меня есть две сетевые службы - клиент gRP C и сервер gRP C. Сервер написан на. NET Core, , следовательно, HTTP / 2 для gRP C принудительно . Однако клиентом является веб-приложение. NET Framework 4.7.2, размещенное на IIS 8.5, , поэтому оно поддерживает только HTTP / 1.1 .

, так как для обновления клиента потребуется некоторое время. Я думал, можно ли использовать HTTP / 1.1 вместо HTTP / 2 на стороне сервера, но я не могу найти никакой информации, как этого добиться.

Можно ли использовать HTTP / 1.1 для gRP C сервер, написанный на. NET Core? И если так - как?

Ответы [ 2 ]

5 голосов
/ 16 января 2020

Нет, вы не можете использовать gRP C для HTTP 1.1; однако вы можете использовать транспортную реализацию Google Grp c .Core вместо управляемых бит Microsoft; это предназначается. NET Стандарт 1.5 и. NET Стандарт 2.0, поэтому должен работать на. NET Core и использовать для транспорта c неуправляемый двоичный файл (chttp2), определенный для ОС.

Для клиентской стороны практически нет разницы между ними; изменяется только фактическое создание канала, между:

GrpcChannel.ForAddress(...)

с транспортом Microsoft и

new Channel(...)

с транспортом Google. Все остальные API являются общими (в Grp c .Core.Api)

2 голосов
/ 16 января 2020

Нет. Вызов RP C выполняется только через HTTP / 2. Это позволяет пользователям gRP C автоматически использовать все функции протокола.

...