【问题标题】:How to fix retryWrites in Mongo?如何修复 Mongodb 中的 retryWrites?
【发布时间】:2019-12-12 20:47:20
【问题描述】:

我正在使用 mlab.com mongoDB,我可以查询它,但我不能插入它

那是我的课

public class Main
{
    private MongoUrl _url;
    private MongoClient _client;

    public Main(MongoUrl url)
    {
        url = new MongoUrl("mongodb://username:password@ds062807.mlab.com:62807/robobalancedb");
        _url = url;
        _client = new MongoClient(_url);
    }

    public async Task Login([Option]string username, [Option]string password)
    {

        var db = _client.GetDatabase("robobalancedb");

        var col = db.GetCollection<User>("users"); 

        var user = await (await col.FindAsync(x => x.Name == username && x.Password == password)).FirstOrDefaultAsync();

    }

    public async Task Supply([Option(ShortName="u")] string username, [Option(ShortName="a")]double amount, [Option(ShortName="d")]string description)
    {

        var db = _client.GetDatabase("robobalancedb");
        var col = db.GetCollection<OwnerSupply>("ownersupplies");

        var supply = new OwnerSupply(){
            Amount = amount,
            Description = description
        };

        await col.InsertOneAsync(supply);
    }
}

异常

https://imgur.com/a/cSKNelR

搜索后,我尝试将 ?retryWrites=true 添加到我的连接字符串 mongodb://username:password@ds062807.mlab.com:62807/?retryWrites=true/robobalancedb

我遇到了异常

MongoDB.Driver.MongoConfigurationException: 'retryWrites 的布尔值为 false/robobalancedb。'

并尝试在 _client 字段中设置 RetryWrites

_client.Settings.RetryWrites = false; 

遇到异常 System.InvalidOperationException: 'MongoClientSettings is frozen.'

【问题讨论】:

  • 你试过mongodb://username:password@ds062807.mlab.com:62807/robobalancedb?replyWrites=false 吗?
  • 是的,我试过了

标签: c# mongodb


【解决方案1】:

我通过将retryWrites=false 放在连接字符串的末尾解决了这个问题

mongodb://username:password@ds062807.mlab.com:62807/robobalancedb?retryWrites=false

【讨论】:

    【解决方案2】:

    我在没有通过代码触及连接字符串的情况下修复了它:

    var url = new MongoUrl(Configuration.GetValue<string>("MongoConnection"));
    var mongoClientSettings = MongoClientSettings.FromUrl(url);
    mongoClientSettings.RetryWrites = false;
    services.AddSingleton<IMongoClient>(new MongoClient(mongoClientSettings));
    

    【讨论】:

      猜你喜欢
      • 2021-03-18
      • 2023-03-22
      • 2021-10-28
      • 2019-09-29
      • 1970-01-01
      • 2019-07-23
      • 2022-08-14
      • 2020-08-06
      • 2019-12-05
      相关资源
      最近更新 更多