c#如何延长mongo db事务生存时间

c#如何延长mongo db事务生存时间,c#,mongodb,transactions,mongodb-.net-driver,C#,Mongodb,Transactions,Mongodb .net Driver,如何更改我的云副本集。 首先,我创建了一个新的会话: var client = new MongoClient(new MongoUrl(_connectionString)); var session= client.StartSession(); 下一个 当start和commit事务之间的代码结束时,会出现如下错误 引发异常:MongoDB.Driver.Core.dll中的“MongoDB.Driver.MongoCommandException”(“命令插入失败

如何更改我的云副本集。 首先,我创建了一个新的会话:

var client = new MongoClient(new MongoUrl(_connectionString));           
var session= client.StartSession();
下一个

当start和commit事务之间的代码结束时,会出现如下错误

引发异常:MongoDB.Driver.Core.dll中的“MongoDB.Driver.MongoCommandException”(“命令插入失败:事务1已中止…”)引发异常:MongoDB.Driver.Core.dll中的“MongoDB.Driver.MongoCommandException”


如果代码耗时不到1分钟,一切正常。

您可以调用此命令
db.adminCommand({setParameter:1,transactionLifetimeLimitSeconds:30})
如:

var adminDb = client.GetDatabase("admin");
adminDb.RunCommand<BsonDocument>("{ setParameter: 1, transactionLifetimeLimitSeconds: 30 }";
var adminDb=client.GetDatabase(“admin”);
adminDb.RunCommand(“{setParameter:1,transactionLifetimeLimitSeconds:30}”;

此外,请选中此交易选项:,我认为它应该会有所帮助(但我没有亲自使用它).

默认连接超时时间为30秒。超时时间在命令中。你的意思是什么?这回答了你的问题吗?我尝试了MaxCommitTime选项,但我认为它只是延长了提交时间,而不是整个事务。我将尝试第二个选项来访问管理数据库,但我不确定我没有足够的权限那个
var adminDb = client.GetDatabase("admin");
adminDb.RunCommand<BsonDocument>("{ setParameter: 1, transactionLifetimeLimitSeconds: 30 }";