我创建了一个MongoLab沙箱数据库.我与MongoChef连接,它工作正常.
我通过Nuget安装了MongoDB.Driver 2.2.2.
我做了一些简单的C#演示代码,但是没有让它工作.
连接字符串直接从MongoChef复制,它绝对有效!
当尝试使用本地Mongo实例时,我会得到相同的行为.但是当尝试使用驱动程序版本2.1.1时,它可以在本地和MongoLab上运行!在2.2中,内部连接行为是否以某种方式发生了变化?
const string connectionString = "mongodb://user:password@ds047095.mongolab.com:47095/dbname";
var client = new MongoClient(connectionString);
var db = client.GetDatabase("dbname");
var skills = db.GetCollection<Skill>("skill");
skills.InsertOne(new Skill {SkillName = "TEST"});
Run Code Online (Sandbox Code Playgroud)
这是抛出的异常:
使用CompositeServerSelector {Selectors = WritableServerSelector,LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000}}选择服务器30000ms后发生超时.群集状态的客户端视图是{ClusterId:"1",ConnectionMode:"Automatic",类型:"Unknown",状态:"Disconnected",服务器:[{ServerId:"{ClusterId:1,EndPoint:"127.0.0.1: 27017"}",EndPoint:"127.0.0.1:27017",状态:"已断开连接",类型:"未知",HeartbeatException:"MongoDB.Driver.MongoConnectionException:打开与服务器的连接时发生异常.--- > System.MissingMethodException:找不到方法:MongoDB.Driver上的'MongoDB.Bson.BsonDocument MongoDB.Bson.RawBsonDocument.Materialize(MongoDB.Bson.IO.BsonBinaryReaderSettings)'.MongoDB.Driver.Core.WireProtocol.CommandWireProtocol 1.ProcessReply(ConnectionId connectionId, ReplyMessage1 reply) .Core.WireProtocol.CommandWireProtocol`1.d__11.MoveNext()---在抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务). MongoDB.Driver.Core.Connections.ConnectionIniti上的CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)alizer.d__1.MoveNext()---抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处(任务) MongoDB.Driver.Core.Connections.BinaryConnection.d__47.MoveNext()---内部异常堆栈跟踪结束---在MongoDB.Driver.Core.Connections.BinaryConnection.d__47.MoveNext()---结束来自抛出异常的先前位置的堆栈跟踪---在System.Runtime.CompilerServices.TaskAwaiter的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处. MongoDB.Driver.Core.Servers.ClusterableServer.d__42.MoveNext()"}]}中的ValidateEnd(任务任务).
小智 5
我遇到了同样的问题并找到了可能的解决方案:检查以下软件包的版本:MongoDB.Driver,MongoDB.Driver.Core,MongoDB.Bson在解决方案中的所有项目中.也许某些软件包有不同的版本,然后将它们更新到最新版本.还要将MongoDB更新到最新版本.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
10100 次 |
| 最近记录: |