2013-09-23 8 views
1

누군가이 예외를 본 적이 있는지 궁금합니다. C# 드라이버를 사용하고 있으며 많은 서버에서이 코드를 성공적으로 실행했습니다. 우리는 하나의 특정 프로덕션 서버에서이를보고 있습니다.MongoDB - 'MongoDB.Bson.ObjectId'의 형식 초기화 프로그램이 예외를 던졌습니다

내가 처음 보았을 때 처음으로 새 컬렉션에 삽입되었습니다. 그 후 나는 그 콜렉션에 대한 InsertBatch를 호출 할 때마다 발생하는 것으로 보인다.

동일한 실행 중에 다른 모음의 InsertBatch를 성공적으로 호출했습니다.

오류 * * 메시지 = 'MongoDB.Bson.ObjectId'의 형식 이니셜 예외가 발생했습니다., MongoDB.Bson.ObjectId.GenerateNewId에서 스택 추적 =()에서 MongoDB.Bson.Serialization.IdGenerators . MongoDB.Driver.MongoCollection.InsertBatch에서 BsonObjectIdGenerator.GenerateId (개체 컨테이너 개체 문서) (유형 nominalType, IEnumerable을 문서, MongoInsertOptions 옵션)

감사합니다,

+0

재현 할 수 있습니까? 드라이버 소스 코드로 디버그 할 수 있습니까? – WiredPrairie

+0

우리는 그것을 재현 해 냈고 유감스럽게도 고객 환경에 있으므로 디버깅 할 수는 없지만 실제로는 좋은 생각입니다. 적어도 내 환경에서 코드에서 어떤 일이 벌어지고 있는지를 알기 위해 디버깅 할 수 있습니다. –

+0

한 라인 프로그램으로 재현 가능하다는 것을 알게되었습니다 : ObjectId id = ObjectId.GenerateNewId(); 반환되는 오류 : 'MongoDB.Bson.ObjectId'의 형식 이니셜 라이저에서 예외가 throw되었습니다. –

답변

0

확인하세요 내부 예외. Mongo는 FIPS를 구현하지 않으며 일부 운영 체제 구성에서 필수이므로 ObjectId를 읽거나 생성하려고 시도하는 동안 인증이 비활성화 된 경우에도이 오류가 발생할 수 있습니다 (암호화 된 ID 값이 있으므로). 이 문제를 해결하려면 컬렉션에서 암호화 된 "_id"필드 값을 바꾸거나 FIPS를 구현하지 않는 응용 프로그램을 허용하도록 Windows 레지스트리를 수정하십시오.

0

PHP에서 같은 오류가 발생했습니다. 알려진 문제임을 알게되었습니다 (https://jira.mongodb.org/browse/PHPC-460 참조). 나는 이것이 C#이라고 알고 있지만 아마 비슷한 문제 일 것이다.

관련 문제