В настоящее время у меня есть несколько приложений на одном сервере. Приложения находятся в разных папках друг от друга.
В приложении мы динамически создаем отображение под названием «пользовательский», которое должно указывать на соответствующую «пользовательскую» папку для каждого приложения.
Например, возьмите следующие три приложения и их пути:
app1 c: \ inetpub \ app1 \ custom
app2 c: \ inetpub \ app2 \ custom
app3 c: \ inetpub \ app3 \ custom
Код, который я использую для этого (вызывается в OnApplicationStart) для одного приложения:
<cffunction name="CreateAppMappings" output="no" returntype="void">
<cfargument name="absolutePath" required="yes" />
<cfscript>
mappingCustom = "/custom";
serviceFactory = createObject("java","coldfusion.server.ServiceFactory");
mappings = serviceFactory.runtimeService.getMappings();
mappings["/custom"] = "#arguments.absolutePath#\wwwroot";
</cfscript>
<cfreturn />
</cffunction>
Проблема в том, что для одного приложения это работает. Но для нескольких приложений оно перезаписывается естественным образом, потому что имя сопоставления одинаково.
Чтобы мы могли использовать одну и ту же кодовую базу для всех приложений, это имя отображения должно быть согласованным («настраиваемым») для каждого приложения.
Итак, как нам это сделать?
Единственный способ, которым я мог представить, - запускать каждое приложение как отдельный экземпляр, используя менеджер экземпляров в CFAdmin.
Это мой единственный вариант? Или есть что-то еще, о чем я могу не знать?
Я использую CF2018.
Спасибо