Привет друзья как дела?
Я недавно опубликовал веб-сайт с ASP.NET в GoDaddy, но обнаружил, что он очень медленный при холодной загрузке, то есть при первом входе в него требуется много времени, чтобы поднять сайт, затем он работает правильно.
у кого-нибудь есть опыт работы с Asphostportal.com? Лазурь кажется очень дорогой, я не могу позволить себе такую плату. Я ценю ваши комментарии здесь
Добрый день.
Опыта работы с этим хостингом нет.
Проблема в том, что по умолчанию IIS Application Pool использует значение Idle Timeout равный 20 минутам для приложения. Если проходит 20 минут и приложение, которое находится в Application Pool, не получает входящих запросов, то IIS выгружает его из памяти. (на указанном Вами хостинге, эти значения могут отличаться)
Если вы используете относительно дешевый хостинг то обычно ресурсы для нескольких приложений шарятся и используется общий Application Pool, соответственно доступа к его настройкам у вас нет. Потому что их смена повлечет смену настроек и других приложений.
На своем IIS поменять этот параметр вы можете, как описано в этой статье https://support.sisense.com/hc/en-us/articles/115012747167-Cancel-IIS-Timeout-And-Recycling, сменив дефолтовое значение с 20 на 0 (тогда таймаута не будет)
В Вашем случае можно:
- перейти на вариант хостинга, когда ресурсы выделены только под ваше приложение и есть возможность установить таймаут (скрей всего это будет значительно дороже, чем текущий вариант)
- минимзировать время старта приложения. Пересмотреть действия которые просиходят в Application_Start событии (если там есть, что оптимизировать).
- сделать чтобы внешнее приложение регулярно присылало запрос на ваш сайт, например, каждые 19 минут. В том же azure есть scheduler, который по определенному таймингу может слать запросы. Или это может быть какое-то консольное приложение, которое будет просто слать запросы к Вашему веб приложению. Но это уже костыли.
На этом хостинге указано в каждом плане "Dedicated Application Pool". (то есть выделенный Application Pool конкретно под ваше приложение)
Скорей всего, у Вас есть возможность настроить Idle Timeout, но какие-то ограничение все равно могут быть.