Я хочу выполнить консольную программу (приложение .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
Приложение C# .NET 9 в докере не может подключиться к экземпляру базы данных mongo ⇐ C#
Место общения программистов C#
1735456340
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" }] }.
Подробнее здесь: [url]https://stackoverflow.com/questions/79314788/c-sharp-net-9-application-in-docker-cannot-connect-to-mongo-db-instance[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия