У меня есть базовый контейнер dockerized. net, и я пытаюсь запросить базу данных MongoDB. У меня есть REST API, который вызывается для запроса базы данных из основного контейнера. net. Кажется, что я могу установить sh соединение с контейнером при создании экземпляра службы:
private readonly IMongoCollection<DbObject> _dbObjects;
public TaxService(IDbConfig dbConfig)
{
Console.Out.WriteLine("got here: " + dbConfig.ConnectionString);
MongoClient client = new MongoClient(dbConfig.ConnectionString);
IMongoDatabase database = client.GetDatabase(dbConfig.DatabaseName);
_dbObjects = database.GetCollection<DbObject>(dbConfig.SalesTaxCollectionName);
Console.Out.WriteLine("db initialized");
}
Вот объект dbConfig
:
"DbConfig": {
"SalesTaxCollectionName": "ExampleCollection",
"ConnectionString": "mongodb://mongo:27017",
"DatabaseName": "ExampleDb"
}
Он проходит через этот код, но когда база данных фактически запрашивается, выдается PlatformNotSupportedException
:
public DbObject GetByValue(string value)
{
Console.Out.WriteLine("querying db");
List<DbObject> matches = _dbObjects.Find(dbObject => dbObject.Value.Equals(value)).ToList();
Console.Out.WriteLine("successfully queried"); // Does not reach this point
if (matches.Any())
{
return matches.First();
}
else
{
throw new ArgumentException($"No values matched");
}
}
Для удобства я оставил остальные файлы в гистах:
docker-compose.yml
: https://gist.github.com/MinhazMurks/1fbb47afd360bbac48df45b1f0609e33
Dockerfile
: https://gist.github.com/MinhazMurks/bb2b7f76d28894a81136d940b5997165
InitExampleDb.js
: https://gist.github.com/MinhazMurks/9aae03daceee1e689c4e821419966f41
Full-Log
: https://gist.github.com/MinhazMurks/0de9cd822fcf2930065527191127c83b
Любое понимание будет оценено!