Я настроил инициализацию приложения для большого веб-сайта, однако еще довольно долго ждать, прежде чем веб-сайт будет инициализирован, прежде чем пользователи смогут получить к нему доступ. Сайт, о котором идет речь, имеет большой размер цитаты, и проблема заключается в компиляции просмотров.
Есть ли способ «разогреть» веб-сайт без простоя пользователя. Похоже, что инициализация приложения делает это в определенной степени, но было бы намного лучше, если бы я снова развернул веб-сайт, на котором IIS продолжал работать в текущем процессе, пока инициализация приложения запускалась, а затем передавалась новому процессу. Это то, что он должен делать?
Есть ли альтернативы этому затруднительному положению? Мы пробовали предварительно скомпилировать представления, используя https://github.com/RazorGenerator/RazorGenerator но столкнулись с некоторыми проблемами, связанными с вложенными представлениями.
Делаем это следующим образом:
Есть много рекомендуемых способов решения этой проблемы, многие из которых, похоже, вы уже нашли. В конечном счете, с IIS лучшим вариантом является наличие нескольких компьютеров с балансировщиком нагрузки. Затем администратор или конфигурация балансировщика нагрузки могут определить, при каких условиях следует использовать каждый сервер. Это решение имеет дополнительное преимущество: вы получаете защиту от аппаратных сбоев веб-сервера, а также повышенную масштабируемость. Также можно использовать программный балансировщик нагрузки (например, Microsoft NLB, который поставляется с серверными версиями Windows), но для этого может потребоваться немного программирования и внешний контроллер, если вы хотите автоматически удалять серверы во время обслуживания.