.net 从Azure Functions连接到MongoDB时出错C#

3wabscal  于 2023-05-01  发布在  .NET
关注(0)|答案(2)|浏览(94)

我正在为一家小公司创建无服务器API。
目前我的网络访问设置为IP地址0。0.0.0。与MongoDB Compass的连接正在工作。
功能:

[FunctionName("Klanten2")]
    public static async Task<IActionResult> Klanten2(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
    ILogger log)
    {
        try
        {

            MongoClient client = new MongoClient("mongodb+srv://<Username>:<password>@testdb.cbbhf9u.mongodb.net/?retryWrites=true&w=majority");
            var database = client.GetDatabase("Test");
            var collection = database.GetCollection<Klant>("Test");

            return new OkObjectResult(collection);
        }
        catch (Exception ex)
        {
            return new BadRequestObjectResult("Error get klanten - " + ex.Message);
        }

    }

目前我的连接网址是在功能,但如果它的工作,然后我去移动网址到本地。settings.json
错误:
发生未处理的主机错误。[2023-04-30T17:34:21.Newtonsoft.Json:从“MongoDB”上的“DirectConnection”获取值时出错。Driver.Core.ClusterDescription'.MongoDB.Driver.核心:当ConnectionModeSwitch设置为UseConnectionMode时,无法使用DirectConnection。
有人知道这个问题吗?
使用Mongodb之前。Net Core WebApi,一切正常。

eufgjt7s

eufgjt7s1#

该错误消息表明MongoDB驱动程序配置中的连接模式设置和直连设置之间可能存在冲突。
若要解决此问题,您可以尝试将连接模式更改为Direct,而不是使用UseConnectionMode设置。可以按如下方式修改代码:

MongoClientSettings settings = MongoClientSettings.FromUrl(new MongoUrl("mongodb+srv://<Username>:<password>@testdb.cbbhf9u.mongodb.net/"));

settings.ConnectionMode = ConnectionMode.Direct;

MongoClient client = new MongoClient(settings);
var database = client.GetDatabase("Test");
var collection = database.GetCollection<Klant>("Test");

return new OkObjectResult(collection);

通过将连接模式设置为ConnectionMode。直接,你告诉驱动程序使用直接连接,而不是在自动和直接连接模式之间切换。
您可能还需要检查是否有任何其他配置设置可能导致与DirectConnection设置冲突。

ilmyapht

ilmyapht2#

这个错误DirectConnection cannot be used when ConnectionModeSwitch is set to UseConnectionMode说明你使用了两个互斥的选项:DirectConnectionConnectionMode在MongoClientSettings或connectionString中,或者您通过直接分配ConnectionModeSwitch来混淆默认配置。您提供的代码没有设置它,所以我假设您没有提供所有的代码。你应该做一些额外的研究,以找到它的分配。

相关问题