Максимальное количество доменов приложений, загруженных в одном процессе
Поскольку для динамической загрузки сборки требуется загрузка домена приложения, чтобы разрешить уничтожение сборки с помощью выгрузки домена приложения, существует ли в процессе процесс загрузки "максимального" числа доменов приложений? Я имею в виду серверное приложение, в котором каждый пользователь может динамически запускать свой собственный код C#. Но что, если, скажем, 2000 пользователей войдут и загрузят свои коды? Есть ли какие-то возможные ограничения, с которыми я мог бы столкнуться, кроме количества аппдомианов?
Благодарю.
3 ответа
Почти все ограничения CLR основаны на "насколько позволяет память". Единственное исключение, которое я знаю, - это число членов класса, ограниченное 65536. Это основано на определении значения токена. Ничего подобного для доменов приложений.
Я не верю, что в CLR встроено определенное максимальное значение. Скорее всего, объем оставшейся памяти определяет, можно ли динамически загружать новый домен приложения.
Я проведу небольшое исследование, но я не думаю, что для этого есть значение.
РЕДАКТИРОВАТЬ:
Вот еще один пост, который может помочь прояснить ситуацию.
Главным образом это будет определяться пределами вашей ОС. Ваш компьютер x86 не может использовать более 4 ГБ памяти для процесса [только 2 ГБ в режиме пользователя]. Если вы выберете x64, у вас будет гораздо больший лимит. Из того, что я знаю, нет такого ограничения на количество доменов приложений, которые вы можете создать.