Драйвер Mongodb C# Возникла исключительная ситуация при отправке сообщения на сервер - PullRequest
0 голосов
/ 21 июня 2020

Я получил исключение ниже при попытке обновить данные в 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) + "}"));
...