2012-02-21 4 views
0

Je suis complètement nouveau sur MongoDB, donc c'est peut-être quelque chose d'évident. Mais Googling n'a pas fonctionné.Erreur MongoDB GridFS: Nom d'élément en double 'filename'

J'ai mis en place un tout nouveau compte MongoDB, créé une base de données nommée 'resizer-test' avec accnt 'resizer' et mot de passe 'test'. J'ai ensuite téléchargé une image nommée 'flames.jpg' en utilisant l'interface web avec succès.

J'ai ensuite essayé de télécharger le fichier à partir de C# en utilisant le code suivant et le pilote officiel C# (version 1.3.1)

string connectionString = "mongodb://resizer:[email protected]:10028/resizer-test"; 
this.db = MongoDatabase.Create(connectionString); 
gridSettings = new MongoGridFSSettings(); 
grid = db.GetGridFS(gridSettings); 
return grid.OpenRead("flames.jpg"); 

Mais immédiatement eu cette exception:

InvalidOperationException: Duplicate element name 'filename'. 

at MongoDB.Bson.BsonDocument.Add(BsonElement element) in C:\work\10gen\mongodb\mongo-csharp-driver\Bson\ObjectModel\BsonDocument.cs:line 452 
    at MongoDB.Bson.BsonDocument.Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options) in C:\work\10gen\mongodb\mongo-csharp-driver\Bson\ObjectModel\BsonDocument.cs:line 720 
    at MongoDB.Bson.BsonDocument.ReadFrom(BsonReader bsonReader) in C:\work\10gen\mongodb\mongo-csharp-driver\Bson\ObjectModel\BsonDocument.cs:line 393 
    at MongoDB.Bson.Serialization.BsonSerializer.Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options) in C:\work\10gen\mongodb\mongo-csharp-driver\Bson\Serialization\BsonSerializer.cs:line 214 
    at MongoDB.Driver.Internal.MongoReplyMessage`1.ReadFrom(BsonBuffer buffer, IBsonSerializationOptions serializationOptions) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoReplyMessage.cs:line 94 
    at MongoDB.Driver.Internal.MongoConnection.ReceiveMessage[TDocument](BsonBinaryReaderSettings readerSettings, IBsonSerializationOptions serializationOptions) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Internal\MongoConnection.cs:line 383 
    at MongoDB.Driver.MongoCursorEnumerator`1.GetReply(MongoConnection connection, MongoRequestMessage message) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 263 
    at MongoDB.Driver.MongoCursorEnumerator`1.GetFirst() in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 223 
    at MongoDB.Driver.MongoCursorEnumerator`1.MoveNext() in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\Core\MongoCursorEnumerator.cs:line 126 
    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) 
    at MongoDB.Driver.GridFS.MongoGridFSFileInfo.Refresh() in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFSFileInfo.cs:line 447 
    at MongoDB.Driver.GridFS.MongoGridFSFileInfo.get_Exists() in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFSFileInfo.cs:line 150 
    at MongoDB.Driver.GridFS.MongoGridFSStream..ctor(MongoGridFSFileInfo fileInfo, FileMode mode, FileAccess access) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFSStream.cs:line 76 
    at MongoDB.Driver.GridFS.MongoGridFSFileInfo.Open(FileMode mode, FileAccess access) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFSFileInfo.cs:line 408 
    at MongoDB.Driver.GridFS.MongoGridFSFileInfo.OpenRead() in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFSFileInfo.cs:line 416 
    at MongoDB.Driver.GridFS.MongoGridFS.OpenRead(String remoteFileName) in C:\work\10gen\mongodb\mongo-csharp-driver\Driver\GridFS\MongoGridFS.cs:line 696 
    at ImageResizer.Plugins.MongoReader.MongoReaderPlugin.MongoVirtualFile.Open() in C:\Users\Administrator\Documents\resizer\Plugins\MongoReader\MongoReaderPlugin.cs:line 79 
    at ImageResizer.ImageBuilder.GetStreamFromSource(Object source, ResizeSettings settings, Boolean& disposeStream, String& path, Boolean& restoreStreamPosition) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 253 
    at ImageResizer.ImageBuilder.LoadImage(Object source, ResizeSettings settings, Boolean restoreStreamPos) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 135 
    at ImageResizer.ImageBuilder.BuildJob(ImageJob job) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 388 
    at ImageResizer.ImageBuilder.Build(ImageJob job) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 371 
    at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 357 
    at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 343 
    at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings) in C:\Users\Administrator\Documents\resizer\Core\ImageBuilder.cs:line 330 
    at ImageResizer.InterceptModule.<>c__DisplayClass2.<HandleRequest>b__1(Stream stream) in C:\Users\Administrator\Documents\resizer\Core\InterceptModule.cs:line 266 
    at ImageResizer.Plugins.Basic.NoCacheHandler.ProcessRequest(HttpContext context) in C:\Users\Administrator\Documents\resizer\Core\Plugins\Basic\NoCacheHandler.cs:line 28 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Qu'est-ce que Je manque?

Répondre

1

Devinez quoi! Le message d'erreur était légitime. MongoHQ.COM attachait des éléments de nom de fichier en double au fichier pendant le téléchargement - c'est un bogue dans leur interface de gestion de fichier manuelle.

Questions connexes