【问题标题】:MongoDB throwing exception on resolving connection string (C#)MongoDB 在解析连接字符串时抛出异常(C#)
【发布时间】:2020-08-23 07:47:11
【问题描述】:

我正在构建一个 winform 应用程序,该应用程序最初使用 Driver 2.10 连接到 MongoDB 服务器。 当我尝试在自己的机器上连接时,一切正常,但是在尝试安装时 其他计算机上的客户端通过 msi 文件,应用程序崩溃,我得到以下信息:

ERROR - List of configured name servers must not be empty.
Parameter name: servers
   at DnsClient.LookupClient.QueryInternal(DnsQuestion question, DnsQuerySettings queryOptions, IReadOnlyCollection`1 servers)
   at DnsClient.LookupClient.Query(DnsQuestion question)
   at MongoDB.Driver.Core.Configuration.ConnectionString.Resolve(Boolean resolveHosts)
   at MongoDB.Driver.MongoUrl.Resolve(Boolean resolveHosts)
   at MongoDB.Driver.MongoClientSettings.FromUrl(MongoUrl url)
   at MongoDB.Driver.MongoClient..ctor(String connectionString)
   at PaladinFormV2.MongoCRUD..ctor(String i_database)
   at PaladinFormV2.Paladin..ctor(Boolean onboarding)
   at PaladinFormV2.Program.Main()

我通过如下连接字符串进行连接:

MongoClient client = new MongoClient("mongodb+srv://[name]:[pass]@mcsamples-nwups.mongodb.net/test?retryWrites=true&w=majority");

我做错了什么,我在这里缺少什么信息来解决这个问题?
谢谢

【问题讨论】:

    标签: c# mongodb dns


    【解决方案1】:

    编辑您的连接字符串 来自

    `MongoClient client = new MongoClient("mongodb+srv://[name]:[pass]@mcsamples-nwups.mongodb.net/test?retryWrites=true&w=majority")`
    

    `MongoClient client = new MongoClient("mongodb+srv://[name]:[pass]@mcsamples-nwups.mongodb.net/test")`
    

    还要确保您有与云服务器的互联网连接

    【讨论】:

      【解决方案2】:

      因此,经过很长时间试图找出这里出了什么问题,我得出的结论是,在连接字符串中使用“+srv”会尝试解析运行 mongo 实例的 DNS 服务器,供客户端使用这可能会导致应用崩溃。

      我的修复是使用不使用此前缀的不同连接字符串。 连接字符串的信息取自这里https://docs.mongodb.com/manual/reference/connection-string/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 2020-12-27
        • 2015-01-26
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多