Разделить приложение MVC на несколько доменов приложений? - PullRequest
0 голосов
/ 26 апреля 2018

Насколько я понимаю, когда делается запрос, IIS направляет его в соответствующее веб-приложение, и в этот момент ваше приложение, наследуясь от HttpApplication, обрабатывает запрос, когда вы регистрируете маршрут в Mvc под капотом, он назначает MvcRouteHandler. что в конечном итоге приводит к тому, что MvcHandler берет на себя и выполняет обычные функции Mvc, находит контроллер и действие, разрешает представление и т. д.

У меня вопрос, в момент запроса, можете ли вы разделить выполнение на другой домен приложений? Таким образом, ваше веб-приложение будет появляться как обычно со своим AppDomain по умолчанию, но вся логика приложения будет загружена и обработана в отдельном AppDomain?

Я подозреваю, что ответ на этот вопрос, вероятно, нет. Я просто нахожу это немного резким, что если вы хотите обновить dll, вам нужно перезагрузить все приложение или перепрыгнуть через пики с какой-то архитектурой плагинов.

То, что я хочу сделать, это по сути загрузить все приложение в отдельный домен приложений, который будет обрабатывать весь трафик в обычном режиме, но когда вы добавляете новый dll, он порождает новый домен приложений, перезагружает все и заменяет старый AppDomain и замена в новом AppDomain, что означает плавное обновление и переход.

Единственное, что я нашел близко к этому, это материал уровня IIS, включающий поддержку двух приложений / пулов приложений.

...