首页 > 解决方案 > Xamarin 和 gRPC:由对等方关闭的连接

问题描述

我正在尝试使用 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:xxxx:5001 其中 xxxx 是计算机的 IP,它会给出相同的错误。

标签: xamarin.androidgrpc

解决方案


Xamarin 适用于本机 nugets Grpc.CoreGrpc.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 是当今可行的替代方案。


推荐阅读