android - Xamarin 应用程序(Android)无法从物理设备访问本地网络中的 mongodb 服务器
问题描述
我正在本地网络中运行具有多个物理 android 手机的测试环境。在网络中,我有一个要访问的 MongoDB 服务器。
我无法从应用程序连接,尽管相同的代码在常规控制台应用程序中完美运行。我用谷歌搜索了这个,但我只找到有关本地主机的信息,(模拟器和服务器/服务正在运行)
回答一些问题:不,我不能公开 IP 并从网络访问它。是的,我试过多部手机。是的,我已经查看了应用程序权限。不,我不能只使用免费的在线服务,因为我正在测试数百万个写入/读取请求将如何加载系统(因此我们可以判断云服务与内部托管的成本)。是的,我已经测试过它适用于在线资源(Azure cosmos db)。
解决方案
我想通了,(stackoverflow 因维护而停机,所以我自己继续)。
原来我在“catch”中遗漏了一些东西,所以它捕获了错误,什么也没做,给我结果“{}”,因为我有一些方法调用其他类中的方法,调用更多类中的更多方法,从来没有错误信息。
所以工作代码,(来自 mongodb 文档的标准连接代码):
public async Task<string> LoginAsync(string name, string password)
{
if (!Ready) { Start(); }
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("nick", name) & builder.Eq("password", password);
string output;
try
{
var var1 = await CosmosUsersCollection.Find(filter).FirstAsync();
output = var1.ToString();
}
catch (Exception ex)
{
// important for uncovering errors
output = ex.Message;
}
return output;
}
推荐阅读
- java - Spring boot:启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序
- javascript - 表格的列和行重新排序,拖放也可以在 React js 中编辑表格单元格
- android - 在 CoroutineScope 中下载多个图像
- c# - 验证是否调用了基类方法
- ios - 如何更改文本字段标题颜色?
- c - 为什么这个 C 代码会导致不稳定的运动?
- jenkins - 保存并应用后,Jenkins JDK安装消失
- node.js - Nodejs 在 ubuntu 上安装 node-canvas 不起作用。错误:“内部/模块/cjs/loader.js:1122”
- postgresql - 如何通过 Terraform 在 gcp 上的 postgresql 数据库实例中创建表?
- multidimensional-array - 需要帮助在 php 中创建多维数组并按键排序