У нас есть устаревшее приложение веб-форм ASP.NET, в котором мы хотим провести некоторую разминку приложения после запуска. Вот идея, которая у нас есть:
- Отслеживание статистики страниц в кэше Redis (каждое посещение +1, и, возможно, некоторый процент с течением времени затухает, чтобы поддерживать актуальность статистики)
- Создать прогревpage (простой .aspx), который занимает 10 или 20 верхних страниц и выполняет запрос GET к страницам для его правильного прогрева.
Большинство наших страниц необходимо подготовить перед первымрендеринг (у нас есть пользовательский слой поверх веб-форм ASP.NET, который определяет представления в XML, который необходимо проанализировать), и, к сожалению, он тесно интегрирован с жизненным циклом ASP.NET. Поэтому в этих случаях просто вызвать базовый код немного сложно.
Отслеживание статистики страницы достаточно просто, и я создал страницу прогрева, которая, в свою очередь, должна подогревать другие страницы. Однако все страницы защищены аутентификацией (NTLM или федеративная аутентификация через WS-Federation или OpenID Connect, в зависимости от конфигурации). Так что простое использование HttpClient не работает слишком хорошо, потому что тогда нам нужен действительный пользователь (для страницы разминки мы можем делать исключения, но не на других страницах).
Какие у меня альтернативыразрешить странице разминки выполнять запросы к приложению ASP.NET, не беспокоясь об аутентификации? Поскольку страница прогрева запускается на сервере, я полагаю, что должен быть способ вызвать конвейер ASP.NET для определенного пути, не проходя через IIS ..? В основном подделка запроса? Или есть другие способы решить эту проблему?