首页 > 解决方案 > Xamarin 应用程序(Android)无法从物理设备访问本地网络中的 mongodb 服务器

问题描述

我正在本地网络中运行具有多个物理 android 手机的测试环境。在网络中,我有一个要访问的 MongoDB 服务器。

我无法从应用程序连接,尽管相同的代码在常规控制台应用程序中完美运行。我用谷歌搜索了这个,但我只找到有关本地主机的信息,(模拟器和服务器/服务正在运行)

回答一些问题:不,我不能公开 IP 并从网络访问它。是的,我试过多部手机。是的,我已经查看了应用程序权限。不,我不能只使用免费的在线服务,因为我正在测试数百万个写入/读取请求将如何加载系统(因此我们可以判断云服务与内部托管的成本)。是的,我已经测试过它适用于在线资源(Azure cosmos db)。

标签: android.netmongodbxamarinlocal

解决方案


我想通了,(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;
    }

推荐阅读