У меня есть приложение MVC 5 ASP.NET, которое предварительно скомпилировано на встроенном сервере. В пакете развертывания нет компилируемых элементов. Это веб-приложение при развертывании на IIS 7 / 7.5 запускается в течение 5 секунд на медленном сервере с небольшим объемом памяти. При первом запуске нет пика памяти, и веб-страница быстро отвечает.
Однако то же приложение, развернутое на гораздо более новом сервере с большим объемом памяти, и IIS 8.5 при первом запуске ведет себя так, как будто это не будет компиляция. Я наблюдаю высокий пик памяти при первом доступе ко всей свободной памяти, и в редких случаях я испытываю OutOfMemoryException.
Похоже, что IIS 8.5 полностью игнорирует тот факт, что приложение уже скомпилировано и делает это снова. Кто-нибудь знает, можно ли решить эту проблему или мне нужно прекратить использование нового сервера и вернуться к старому.
ОБНОВЛЕНИЕ 1 После еще нескольких тестов я думаю, что это связано скорее с архитектурой x64. Если я настрою AppPool на IIS 8.5. для работы в 32-битном режиме все работает быстро, как на компьютере с IIS 7. Я понимаю, почему процесс IIS занимает в два раза больше памяти на 32 бита. Но не понимаю, почему компиляция в 7 (семь) раз дольше, а память компиляции в 10 раз больше.
По предложению @ jeremy-cook
Копирую свой ответ:
После еще нескольких тестов я думаю, что это связано скорее с архитектурой x64. Если я настрою AppPool на IIS 8.5. для работы в 32-битном режиме все работает быстро, как на компьютере с IIS 7.