MVC — запуск разных областей в разных пулах приложений

Мне нужно запускать разные области кода под разными пулами приложений. Я попытался преобразовать область администрирования (MVC C#) в приложение и назначить другой пул приложений, но двоичные файлы по-прежнему работают под основным пулом приложений.

Есть ли другой способ сделать это?

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


person Tal    schedule 11.04.2017    source источник
comment
Почему? Вы хотите, чтобы они запускались под разными учетными записями? У вас есть две отдельные сборки DLL и т. д., которые вы можете изолировать для разных пулов приложений? Как вы пытались и как вы узнали, что это не сработало?   -  person Nick.McDermaid    schedule 12.04.2017
comment
Мне нужно, чтобы пул приложений, работающий для раздела администратора, имел идентификатор локального пользователя Windows, а в других разделах - как AppPoolIdentity. Я преобразовываю область администратора в приложение и назначаю другой пул приложений, но код все еще работает под веб-сайтом appPool.   -  person Tal    schedule 12.04.2017
comment
Что вы подразумеваете под «админкой». Вы имеете в виду целый отдельный виртуальный каталог с собственной копией DLL и т. д.?   -  person Nick.McDermaid    schedule 12.04.2017
comment
На веб-сайте есть бэк-офис для административных операций (управление пользователями, контентом и т. д.), для этого раздела на веб-сайте требуется пул приложений с другим идентификатором.   -  person Tal    schedule 12.04.2017
comment
Если я вспомню, как правильно работает IIS, чтобы иметь два пула приложений, вам нужны две разные виртуальные папки. Таким образом, вам нужно будет развернуть две копии вашего приложения в двух разных папках, после чего вы сможете назначить им разные пулы приложений. В настоящее время вы развертываете две копии своего приложения в двух разных виртуальных папках?   -  person Nick.McDermaid    schedule 12.04.2017
comment
Если я использую два веб-сайта с двумя копиями кода, это будет работать, но мне придется поддерживать два веб-сайта с двумя разными доменами. Я пытаюсь найти более чистое решение.   -  person Tal    schedule 12.04.2017
comment
Это не обязательно должны быть два веб-сайта, достаточно двух виртуальных папок. В настоящее время вы развертываете две копии своего приложения в двух разных виртуальных папках?   -  person Nick.McDermaid    schedule 12.04.2017
comment
Я заметил, что у вас был другой вопрос: stackoverflow.com/questions/42908601/. Я думаю, было бы неплохо объяснить, что вы делаете на высоком уровне. Возможно, есть более простой способ сделать это.   -  person Nick.McDermaid    schedule 12.04.2017
comment
Если это связано с вашим другим вопросом о доступе к удаленным общим ресурсам, почему вы думаете, что вам нужно разделить свое приложение на один компонент, у которого есть доступ, и другой, у которого нет? Это запрос от команды инфраструктуры? Если только определенные люди могут выполнять эту административную задачу по доступу к удаленным общим ресурсам, вы должны иметь возможность обеспечить безопасность внутри своего приложения, чтобы предотвратить несанкционированный доступ.   -  person Nick.McDermaid    schedule 12.04.2017
comment
У меня есть сетевая папка, к которой мне нужно получить доступ. Если я использую простой AppPoolIdentity, у меня недостаточно прав для доступа к этой папке. Если я использую определенный идентификатор пользователя, я получаю необходимые мне разрешения, но у меня возникают проблемы с производительностью для ~ 50 пользователей и выше. Поскольку мне нужны только эти разрешения в области администрирования, я подумал, что два отдельных пула приложений могут быть хорошим решением, но любое решение будет отличным.   -  person Tal    schedule 12.04.2017
comment
Вы должны понять проблему производительности, прежде чем делать предположения. Проблема с производительностью может быть связана с тем, что теперь вы копируете большие файлы по сети, и в этом случае наличие двух пулов приложений не будет иметь значения.   -  person Nick.McDermaid    schedule 12.04.2017
comment
Когда я использую определенный идентификатор пользователя, я сразу же получаю проблемы с производительностью (без каких-либо действий в разделе администратора). Вероятно, это связано с процессом аутентификации, который должен проверять каждый запрос от имени пользователя Windows (причиной проблем с производительностью является процесс lsass.exe). Два пула приложений решат проблему, потому что в области администрирования у меня есть один или два пользователя в сети, а другие пользователи могут работать без накладных расходов на аутентификацию. Я написал об этом здесь: stackoverflow.com/ вопросы/43326106/   -  person Tal    schedule 12.04.2017
comment
Мне кажется, что если вы разделите свое приложение на два пула приложений, вы все равно столкнетесь с проблемой процессора LSASS.EXE, и это все равно повлияет на производительность. Я думаю, вам следует попытаться решить вашу проблему с LSASS, поскольку мы ни к чему не придем, пытаясь объяснить, как разделить ваше приложение на два пула приложений.   -  person Nick.McDermaid    schedule 12.04.2017