MongoDB - 'MongoDB.Bson.ObjectId'的类型初始值设定项引发了异常

时间:2013-09-23 21:02:07

标签: c# mongodb

我只是想知道是否有人见过这个例外?我正在使用C#驱动程序并在许多服务器上成功运行此代码。我们在一个特定的生产服务器上看到了这一点。

我第一次看到这是第一次插入新系列。之后,每当我为该集合调用InsertBatch时,似乎都会发生这种情况。

我在同一次运行中成功地在其他集合上成功调用了InsertBatch。

错误* * Message ='MongoDB.Bson.ObjectId'的类型初始值设定项引发异常。,Stack Trace = at MongoDB.Bson.ObjectId.GenerateNewId()    在MongoDB.Bson.Serialization.IdGenerators.BsonObjectIdGenerator.GenerateId(对象容器,对象文档)    在MongoDB.Driver.MongoCollection.InsertBatch(类型nominalType,IEnumerable文档,MongoInsertOptions选项)

谢谢,

3 个答案:

答案 0 :(得分:0)

检查您的内部异常。由于Mongo没有实现FIPS,并且在某些操作系统配置中是强制性的,因此即使在尝试读取或生成ObjectId时禁用了身份验证(因为它们具有加密的id值),您也可能会收到此错误。要解决此问题,请更换集合中的加密“_id”字段值,或修改Windows注册表以允许应用程序不实现FIPS。

答案 1 :(得分:0)

我今天在PHP上看到了同样的错误。发现这是一个已知问题(见https://jira.mongodb.org/browse/PHPC-460)。我知道这是C#,但也许是类似的问题。

答案 2 :(得分:0)

有趣的是BSonId序列化,该序列化已于2013年由某人实施 https://github.com/SharpRepository/SharpRepository/issues/56

就我而言,将Asp.net Core 3.0降级到2.2的工作已经完成。

我认为mongodb.csharp驱动程序需要System.Runtime.Serialization.Formatters参考

3.0版

https://github.com/dotnet/core/issues/2611

并且更新将在2019年的第二个独立时间进行 https://github.com/mongodb/mongo-csharp-driver/pull/372