.net core 3.0 grpc error statucode = отменен

Я получил ошибку при использовании grpc в .net core 3.0,

Вот сообщение об ошибке:

[Grpc.Core.RpcException:“Status(StatusCode=Cancelled, Detail="No grpc-status found on response.")”]

Мой сервер grpc выглядит так:

одна основная библиотека .net с пакетом grpc.aspnetcore (2.25) и один проект ядра .net с пакетом grpc.aspnetcore.server (2.25), я регистрирую службу в файле запуска. Когда звоню в сервис в grpc client

Я получил ошибку Как упоминалось выше.

Эта структура каталогов проекта это служебный регистр. введите здесь описание изображения  введите описание изображения здесь

введите описание изображения здесь


person wannas    schedule 11.12.2019    source источник
comment
Не могли бы вы предоставить файл запуска grpc.aspnetcore.server (2.25)? вы вызываете app.UseEndpoints (endpoints = ›{endpoints.MapGrpcService ‹GreeterService› ();});   -  person TemaTre    schedule 11.12.2019
comment
Вот что я сделал   -  person wannas    schedule 11.12.2019
comment
Вы уверены, что сервер запущен и работает? Вы можете проверить, что порт 44320 занят? Можете ли вы проверить, что брандмауэр не блокирует ваши запросы?   -  person TemaTre    schedule 11.12.2019
comment
Да, запрос может поступить на сервер и быть выполнен. Когда клиент получает возвращаемое значение, выдается сообщение об ошибке.   -  person wannas    schedule 11.12.2019
comment
Какой у вас файл NHBPddServiceIpm и greet.proto? Как вы реализуете службу, которую NHBPddServiceIpm унаследовали? Не могли бы вы предоставить законченный простой проект, поскольку ваша служба Grpc не использует шаблон по умолчанию и содержит некоторые настраиваемые объекты?   -  person Xueli Chen    schedule 12.12.2019
comment
когда я использую шаблон по умолчанию, он работает хорошо. Я хочу, чтобы grpc работал с API   -  person wannas    schedule 13.12.2019


Ответы (4)


Я обнаружил, что при запуске службы как IIS-Express клиент всегда ошибается. Но запустите его как ProjectName, клиент работает нормально! изображение путей бега

Не знаю почему, но это просто случилось. Так что вы можете попробовать.

person Kerwin Zhang    schedule 28.01.2020
comment
Ты прав. очевидно, что grpc не поддерживается в IIS. вы настроили VS для работы под Kestrel (по умолчанию) вместо IIS. - person Slime recipe; 22.05.2020

Вы используете IIS / IIS express. Я столкнулся с той же проблемой, когда запустил ее в IISExpress. Измените значения launchSetting.json, как показано ниже, и он будет работать.

{ "profiles": { "Greeter": { "commandName": "Project", "launchBrowser": false, "applicationUrl": "https://localhost:5001", "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" } } } }

person Raj Jaiswal    schedule 12.12.2019
comment
Так что же на самом деле исправление? Что из этого является проблемой? Что мы тут поправляем? Что мы делаем? - person John Demetriou; 18.06.2020

У меня была такая же проблема при запуске API под IIS. Это значение по умолчанию, и если вы запускаете несколько запускаемых проектов, скорее всего, он работает под IIS.

Чинить:

  • Проверьте, под каким HTTPS-адресом / портом работает ваш проект API (по умолчанию https://localhost:5001)

  • Настройте таргетинг только на проект API и измените тип запуска с II Express на консоль (выберите любое имя вашего проекта. См. Пример)

  • Измените запускаемые проекты, чтобы настроить таргетинг на ваш API и клиентское приложение, и запустите.

У вас должно быть два черных окна консоли, и, надеюсь, ваш звонок будет успешным!

person Piercenz    schedule 27.01.2020

Только что возникла эта проблема, решение Кервина Чжана правильное.

Проверьте свои основные журналы Asp.Net или окно вывода vs, когда вы вернетесь из службы, вы увидите некоторые исключения grpc-трейлера, которые не поддерживаются. скорее всего, это означает, что вы запускаете сервер с IIS или какой-либо неподдерживаемой платформой ... gRPC в ASP .NET Core в настоящее время не поддерживает HttpSys / IIS / IIS Express.

Запустите тот же проект, что и kestrel вместо IIS, и теперь он должен работать нормально. (В VS Start debug кнопка раскрывающегося меню изменится с [IIS Express] на [Your Project])

person Slime recipe    schedule 22.05.2020