【问题标题】:Xamarin and gRPC: connection close by peerXamarin 和 gRPC:由对等方关闭的连接
【发布时间】:2019-11-30 09:04:16
【问题描述】:

我正在尝试使用 xamarin android 和 gRPC 进行一些尝试。

我的服务在我的计算机上运行,​​并且我有一个带有 gRPC 客户端的网络标准 2.1 库。如果我在同一台计算机的 wpf 应用程序中使用这个库,我会从服务器获得响应,但是如果我在我的 xamarin proyect 中使用这个库,我在具有 android 8.0 的虚拟机中运行,我会收到消息错误连接关闭同行。

在 xamarion 项目中,我使用的地址是https://10.0.2.2:5001。我使用的 IP 是 10.0.2.2,因为如果我没记错的话,就是用来与 localhost 通信的 IP。

我该如何解决这个问题?

谢谢。

PD:我已设置应用程序可以使用互联网的权限。

PD:我意识到如果我的 WPF 应用程序我使用 https://localhost:5001 它可以工作,但如果我使用 https:x.x.x.x:5001 其中 x.x.x.x 是计算机的 IP,它会给出相同的错误。

【问题讨论】:

  • 使用安全连接 ("https") 时,您使用的主机名实际上很重要。因此,如果您能够与 localhost:5001 连接并且 X.X.X.X:5001 失败,则问题可能在于您的 SSL 证书是如何设置的(它包括名称“localhost”但不允许使用原始 IP。)启用额外的日志记录可能帮助调试问题:github.com/grpc/grpc/blob/master/TROUBLESHOOTING.md

标签: xamarin.android grpc


【解决方案1】:

Xamarin 与本机 nugets Grpc.Core 和 Grpc.Core.Api 一起使用 它不适用于 Grpc.Net.Client

了解更多 https://docs.microsoft.com/en-us/aspnet/core/grpc/client?view=aspnetcore-3.1

Xamarin 目前不支持使用 Grpc.Net.Client 通过 HTTP/2 调用 gRPC。我们正在努力在未来的 Xamarin 版本中改进对 HTTP/2 的支持。 Grpc.Core 和 gRPC-Web 是目前可行的可行替代方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2016-08-21
    相关资源
    最近更新 更多