Я получил исключение ниже при попытке обновить данные в mongodb. Пожалуйста, помогите мне решить эту проблему.
Когда я смотрю в свои журналы, я вижу множество сообщений об ошибках, подобных приведенному ниже, когда драйвер получает ошибку сокета при подключении к mon go. Сайт все еще работает, и эта ошибка возникает не при каждом запросе, а также при одной операции, которая должна занять больше времени.
Версия, которую я использовал C# драйвер: «2.10. 2 "и Azure Версия Cosmos: 3.6".
MongoDB.Driver.MongoConnectionException: исключение при отправке сообщения на сервер. ---> System.IO.IOException: невозможно запись данных в транспортное соединение: существующее соединение было принудительно закрыто удаленным хостом. ---> System. Net .Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом в System. Net .Sockets .Socket.Send (буфер Byte [], смещение Int32, размер Int32, SocketFlags socketFlags) в System. Net .Sockets.NetworkStream.Write (буфер Byte [], смещение Int32, размер Int32) --- Конец внутреннего исключения трассировка стека --- в System. Net .Sockets.NetworkStream.Write (буфер Byte [], смещение Int32, размер Int32) в System. Net .Security._SslStream.StartWriting (буфер Byte [], смещение Int32, Int32 count, AsyncProtocolRequest asyncRequest) в System. Net .Security._SslStream.ProcessWrite (буфер Byte [], смещение Int32, счетчик Int32, AsyncProtocolRequest asyncRequest) в System. Net .Security.SslStream.Write (буфер Byte [], Смещение Int32, счетчик Int32) в MongoDB.Driver.Core.Mis c .StreamExtensionMethods.WriteBytes (поток потока, буфер IByteBuffer, смещение Int32, счетчик Int32, CancellationToken cancellationToken) в MongoDB.Driver.Core.Connections.BinaryConnection (.Se Буфер IByteBuffer, CancellationToken cancellationToken) --- Конец трассировки стека внутреннего исключения --- в MongoDB.Driver.Core.Connections.BinaryConnection.SendBuffer (буфер IByteBuffer, CancellationToken cancellationToken) в MongoDB.Driver.Core.Connections.SendMnections.SendMnections. IEnumerable 1 messages, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken) at MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquiredConnection.SendMessages(IEnumerable
1 сообщений, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken) в MongoDB.Driver.Core.Connections.ConnectionExtensions.SendMessage (соединение IConnection, сообщение RequestMessage, сообщение ageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken) в MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol 1.Execute(IConnection connection, CancellationToken cancellationToken) at MongoDB.Driver.Core.WireProtocol.CommandWireProtocol
1.Execute (соединение IConnection, CancellationTokenToken cancellationToken) в MongoDB. * 1 commandPayloads, IElementNameValidator commandValidator, дополнительные параметры BsonDocument, Action * 1012 context, CancellationToken cancellationToken) в MongoDB.Driver.Core.Operations.BulkUnmixedWriteOperationBase 1.ExecuteBatch(RetryableWriteContext context, Batch batch, CancellationToken cancellationToken) at MongoDB.Driver.Core.Operations.BulkUnmixedWriteOperationBase
1.ExecuteBatches (RetryableWriteContext context, CancellationToken cancellationToken) в MongoDB.Driver.Core.Operations. llationToken cancellationToken) в MongoDB.Driver.MongoCollectionImpl 1.ExecuteWriteOperation[TResult](IClientSessionHandle session, IWriteOperation
1 операция, CancellationToken cancellationToken) в MongoDB.Driver.MongoCollectionImpl 1.BulkWrite(IClientSessionHandle session, IEnumerable
1 запросов, параметры BulkWriteOptions, CancellationToken cancellationImplusToken * 1. ] (Fun c2 func, CancellationToken cancellationToken) at MongoDB.Driver.MongoCollectionImpl
1.BulkWrite (IEnumerable 1 requests, BulkWriteOptions options, CancellationToken cancellationToken) at MongoDB.Driver.MongoCollectionBase
1. <> C__DisplayClass92_0.b__0 (IEnumerable 1 requests, BulkWriteOptions bulkWriteOptions) at MongoDB.Driver.MongoCollectionBase
1.UpdateMany (FilterDefinition 1 filter, UpdateDefinition
1 обновление, параметры UpdateOptions, Fun c3 bulkWrite) at MongoDB.Driver.MongoCollectionBase
1.UpdateMany (FilterDefinition 1 filter, UpdateDefinition
1 обновление, параметры UpdateOptions, CancellationToken cancellationToken) в Sensiple.Tryvium.Data.MongoDB.CommonConnector.Update (String schemaName, String dataFilter, String data, String logSource)
Код, вызывающий проблему,
var _collection = Db.GetCollection<BsonDocument>(schemaName);
BsonDocument bsonDocument = new BsonDocument(BsonSerializer.Deserialize<BsonDocument>(dataFilter));
var updatedResult = _collection.UpdateMany(bsonDocument, BsonDocument.Parse("{$set: " + BsonSerializer.Deserialize<BsonDocument>(data) + "}"));