【问题标题】:.net core 3.0 grpc error statucode=canceled.net core 3.0 grpc 错误状态=已取消
【发布时间】:2019-12-11 04:09:37
【问题描述】:

在 .net core 3.0 中使用 grpc 时出现错误,

这里是错误信息:

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

我的grpc服务器是这样的:

一个带有grpc.aspnetcore(2.25)包的.net core库和一个带有grpc.aspnetcore.server(2.25)包的.net core api项目,我在启动文件中注册了服务。当我在 grpc 客户端调用服务时

我收到了上面提到的错误。

本项目目录结构 这是服务寄存器 enter image description here

【问题讨论】:

  • 能否提供一个 grpc.aspnetcore.server(2.25) ,启动文件?你打电话给 app.UseEndpoints(endpoints => { endpoints.MapGrpcService(); });
  • 我就是这么做的
  • 您确定服务器已启动并正常工作吗?你能检查一下端口 44320 是否繁忙吗?你能检查一下防火墙没有阻止你的请求吗?
  • 是的,请求可以到达服务器并被执行。客户端收到返回值时,报错
  • 您的NHBPddServiceIpmgreet.proto 文件是什么?你如何实现NHBPddServiceIpm继承的服务?您能否提供一个完整的简单项目,因为您的 Grpc 服务不使用默认模板并且包含一些自定义对象?

标签: grpc asp.net-core-3.0


【解决方案1】:

我发现当以 IIS-Express 运行服务时,客户端总是出错。但将其作为 ProjectName 运行,客户端工作正常! run ways image

我不知道为什么,但这只是发生了。所以你可以试试。

【讨论】:

  • 你是对的。显然 grpc 在 IIS 中不受支持。您将 VS 配置为在 kestrel(默认)而不是 IIS 下运行。
【解决方案2】:

您使用的是 IIS/IIS express。当我在 IISExpress 中启动它时,我遇到了同样的问题。如下更改您的 launchSetting.json 值,它将起作用。

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

【讨论】:

  • 那么实际的修复方法是什么?其中哪一个是问题?我们在这里修什么?我们在做什么?
【解决方案3】:

我在 IIS 下运行 API 时遇到了同样的问题。这是默认设置,如果你在运行多个启动项目,它很可能在 IIS 下运行。

修复:

  • 检查您的 API 项目在哪个 HTTPS 地址/端口下运行(https://localhost:5001 是默认值)

  • 仅针对 API 项目并将运行类型从 II Express 更改为控制台(选择您的项目名称。请参阅 Example)

  • 将启动项目更改为以您的 API 和客户端应用为目标并运行。

你应该有两个黑色的控制台窗口,希望你的调用会成功!

【讨论】:

    【解决方案4】:

    Kerwin Zhang 的解决方案是正确的。

    当您从服务返回时检查您的 Asp.Net 核心日志或 vs 输出窗口,您会看到一些 grpc 预告片不受支持的异常。这很可能意味着您使用 IIS 或某些不受支持的平台运行服务器...gRPC in ASP.NET Core currently doesn't support HttpSys/IIS/IIS Express

    启动与 kestrel 相同的项目,而不是 IIS,它现在应该可以正常工作了。 (在 VS 开始调试按钮下拉从 [IIS Express] 更改为 [Your Project])

    【讨论】:

      猜你喜欢
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-05
      相关资源
      最近更新 更多