Быстрая версия вопроса:
Как настроить службу. Net Core windows для целевой базы данных в мультитенантной среде, где у каждого арендатора есть собственная база данных, и все они работать на том же самом сервере?
Некоторая справочная информация:
Я работаю над новой windows службой и, поскольку она совершенно новая, мы собираемся использовать. Net Core. Я прочитал эту страницу и в ней говорится о том, как установить переменную среды в приложении IIS, azure, глобально, для каждого командного окна, но на самом деле не упоминается служба windows, azure Devops или как работать с мультитенантной средой.
Лучшее, что я могу понять, это то, что вы должны установить переменную окружения в параметрах запуска для windows службы, как только она будет создана, но это выглядит как fr agile. Это становится большей проблемой, когда вы смотрите на 25 с потенциалом 100 или более (мы небольшая развивающаяся компания). Мысль о необходимости go вернуть назад и установить все эти переменные вручную, если мы решим перенести службы на другой сервер, не очень приятна.
Поэтому более длинная версия вопроса такова: я на правильном пути? или есть какой-то лучший способ настроить это так, чтобы это не стало таким ручным процессом? Возможно, установка переменной, когда служба развернута на сервере, сработает? Как бы я это сделал с azure devops?
Edit 1
Вот представление среды, в которой мы запускаем эти сервисы.
Databases (separate machine):
Shared1
Db1
Db2
Db3
Machines:
Server1
Windows Services:
Service1
Service2
Service3
базы данных работают на сервере БД. Для каждой службы существует одна база данных, и есть общая база данных, в которой хранится некоторая общая информация (не думаю, что это актуально для вопроса). Есть один сервер. На этом сервере есть копии кода, который должен работать как windows сервис. Количество копий сервиса соответствует количеству баз данных. Таким образом, для приведенного выше сценария: Serivce1
подключается к Db1
, Service2
подключается к Db2
, Service3
подключается к Db3
, и т.д. c ...
Так как у меня есть только на одной машине, если я установлю переменную окружения на что-то вроде ASPNETCORE_DB1
, тогда все три службы будут читать эту переменную и подключаться к Db1
, что не должно происходить.
Если я установлю несколько переменных окружения: ASPNETCORE_Db1
, ASPNETCORE_Db2
, ASPNETCORE_Db2
, как каждая из служб узнает, какую переменную среды читать?