Приложение C# .NET 9 в докере не может подключиться к экземпляру базы данных mongoC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Приложение C# .NET 9 в докере не может подключиться к экземпляру базы данных mongo

Сообщение Anonymous »

Я хочу выполнить консольную программу (приложение .NET) в контейнере Docker. Он содержит клиент mongo и работает нормально при использовании в качестве автономной программы, однако я продолжаю получать ошибки тайм-аута, когда пытаюсь создать Docker-контейнер. Я даже проверил, что соединение из контейнера Docker работает, используя ту же строку подключения для MongoDB. Существует проблема с программой, созданной для Docker (я использую AOT, но это не должно быть проблемой, поскольку она работает так же и в автономном режиме).
Еще более странным является тот факт, что что он также работает правильно при отладке в Visual Studio с настройками Docker.
Что я делаю неправильно? Примечание. Когда я запускал проект, я использовал файл docker, созданный Visual Studio, и он также использует этот файл для отладки.
Ошибка:
2024-12-28 19:35:37 A timeout occurred after 30000ms selecting a server using CompositeServerSelector{ Selectors = ReadPreferenceServerSelector{ ReadPreference = { Mode : Primary } }, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 }, OperationsCountServerSelector }. Client view of cluster state is { ClusterId : "1", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "192.168.0.11:27017" }", EndPoint: "192.168.0.11:27017", ReasonChanged: "Heartbeat", State: "Disconnected", ServerVersion: , TopologyVersion: , Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server.
2024-12-28 19:35:37 ---> System.MissingMethodException: No suitable constructor found for serializer type: 'MongoDB.Bson.Serialization.Serializers.ExpandoObjectSerializer'.
2024-12-28 19:35:37 at MongoDB.Bson.Serialization.BsonSerializationProviderBase.CreateSerializer(Type, IBsonSerializerRegistry) + 0x22b
2024-12-28 19:35:37 at MongoDB.Bson.Serialization.CollectionsSerializationProvider.GetSerializer(Type, IBsonSerializerRegistry) + 0xa4
2024-12-28 19:35:37 at MongoDB.Bson.Serialization.BsonSerializerRegistry.CreateSerializer(Type type) + 0x9a
2024-12-28 19:35:37 at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey, Func`2) + 0xa0
2024-12-28 19:35:37 at MongoDB.Bson.Serialization.BsonSerializer.LookupSerializer[T]() + 0x51
2024-12-28 19:35:37 at MongoDB.Bson.BsonDefaults.get_DynamicDocumentSerializer() + 0x28
2024-12-28 19:35:37 at MongoDB.Bson.Serialization.BsonDeserializationContext.Builder..ctor(BsonDeserializationContext, IBsonReader) + 0x3b
2024-12-28 19:35:37 at MongoDB.Driver.Core.WireProtocol.Messages.Encoders.BinaryEncoders.ReplyMessageBinaryEncoder`1.ReadMessage() + 0x210
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessageHelper.DecodeMessage(IByteBuffer, IMessageEncoderSelector, CancellationToken) + 0x135
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessage(Int32, IMessageEncoderSelector, MessageEncoderSettings, CancellationToken) + 0x14d
2024-12-28 19:35:37 at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol`1.Execute(IConnection, CancellationToken) + 0x173
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.HelloHelper.GetResult(IConnection, CommandWireProtocol`1, CancellationToken) + 0x50
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.ConnectionInitializer.SendHello(IConnection, CancellationToken) + 0x105
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken) + 0x93
2024-12-28 19:35:37 --- End of inner exception stack trace ---
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken) + 0x167
2024-12-28 19:35:37 at MongoDB.Driver.Core.Connections.BinaryConnection.Open(CancellationToken) + 0x17e
2024-12-28 19:35:37 at MongoDB.Driver.Core.Servers.ServerMonitor.InitializeConnection(CancellationToken) + 0x57f
2024-12-28 19:35:37 at MongoDB.Driver.Core.Servers.ServerMonitor.Heartbeat(CancellationToken) + 0x174", LastHeartbeatTimestamp: "2024-12-29T00:35:37.8947163Z", LastUpdateTimestamp: "2024-12-29T00:35:37.8947163Z" }] }.


Подробнее здесь: https://stackoverflow.com/questions/793 ... b-instance
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»