2013-09-23 36 views
1

我只是想知道是否有人曾经见过这个异常?我正在使用C#驱动程序,并已在许多服务器上成功运行此代码。我们在一台特定的生产服务器上看到这一点。MongoDB - 'MongoDB.Bson.ObjectId'的类型初始值设定项引发异常

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

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

错误* *消息=关于 'MongoDB.Bson.ObjectId' 的类型初始引发了异常。,堆栈跟踪=在MongoDB.Bson.ObjectId.GenerateNewId() 在MongoDB.Bson.Serialization.IdGenerators。 BsonObjectIdGenerator.GenerateId(对象容器,对象文件) 在MongoDB.Driver.MongoCollection.InsertBatch(类型nominalType,IEnumerable的文件,MongoInsertOptions选项)

感谢,

保罗

+0

你能重现吗?你可以用驱动程序源代码进行调试吗? – WiredPrairie

+0

我们确实重现了它,不幸的是它在客户环境中,所以我们无法调试它,但这实际上是一个好主意。我至少可以在我的环境中进行调试,以查看代码中发生了什么。 –

+0

我发现它可以用一行程序重现: ObjectId id = ObjectId.GenerateNewId(); 返回的错误是:'MongoDB.Bson.ObjectId'的类型初始值设定项引发了一个异常 –

回答

0

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

相关问题