我的 Blazor 混合应用程序有一个登录屏幕。当用户输入数据并点击按钮时,数据将通过 gRPC 服务发送到服务器。
当应用程序在调试模式下运行时,我没有看到任何错误并成功登录到我的帐户。
但是在发布模式下我得到了 .apk 文件。我将其安装在我的 Android 设备上,当尝试登录时出现错误
Status(
StatusCode="Unavailable",
Detail="Error starting gRPC call.
HttpRequestException: Permission denied (<domain-name:port>).
SocketException: Permission denied",
DebugException="System.Net.Http.HttpRequestException: Permission denied (<domain-name:port>)")
而且我在服务器终端中没有看到任何登录,所以我猜该请求甚至没有被发送。
什么可能导致这种奇怪的行为?
Visual Studio 中的发布模式和调试模式有什么区别?
更新:它发生在我的物理 Android 设备和 Android 模拟器上。
我终于找到解决办法了!
我只需要将此行添加到
AndroidManifest.xml
文件(位于 .NET MAUI 项目的 Platforms > Android
文件夹中)
<uses-permission android:name="android.permission.INTERNET" />