В настоящее время я работаю над созданием мультитенантного приложения с использованием ABP. У меня проблемы с попыткой заставить арендатора субдомена работать, и кажется, что проблема в два раза.
В этом примере сценария мы предполагаем, что приложение размещено локально, и мы используем домен http://lvh.me
, чтобы разрешить субдомены без необходимости изменения файла хостов компьютера.
Новые хосты не создаются, сценарий может быть воссоздан с использованием клиента по умолчанию, предоставляемого ABP.
Если перейти на страницу хоста, все работает
Если использовать SQLite в качестве поставщика базы данных, и мы пытаемся перейти к http://default.lvh.me
, мы можем видеть, что не выбран ни один арендатор. Если я иду в базу данных и обновляю запись, чтобы иметь имя «по умолчанию», а не «по умолчанию», все работает. Это похоже на проблему с SQLite и чувствительностью к регистру, но я не уверен, что лучший подход для решения этой проблемы, поскольку URI по умолчанию не чувствительны к регистру, не должно быть и имя арендатора.
На стороне углового клиента в файле appconfig.json
я обновил следующее:
{
"remoteServiceBaseUrl": "http://{TENANCY_NAME}.lvh.me:21021",
"appBaseUrl": "http://{TENANCY_NAME}.lvh.me:4200"
.....
}
но при доступе к приложению базовый URL-адрес удаленного сервиса {TENANCY_NAME}
никогда не заменяется правильной строкой. Я проследил ошибку до вызова при вызове метода getUserConfiguration
. Поскольку в этом вызове используется значение AppConsts.remoteServiceBaseUrl
, по-прежнему остается заполнитель {TENANCY_NAME}
, поэтому вызов не выполняется.
Есть ли способ, при котором мы можем заставить субдомен работать должным образом из коробки, или это ограничение в самой структуре приложения / шаблона?