Этап запроса страницы ASP.NET ... - PullRequest
0 голосов
/ 29 июля 2011

На этапе запроса страницы (до жизненного цикла страницы), как ASP.NET определяет, нужно ли 1) проанализировать и скомпилировать страницу в первый раз или 2) повторно проанализировать и перекомпилироватьиз-за изменения разметки (при условии «Разрешить обновление этого предварительно скомпилированного сайта» = true) или изменения сборки?Я могу сделать некоторые довольно безопасные предположения, но кто-нибудь знает точно, как ASP.NET делает эти определения?

Жизненный цикл страницы ASP.NET: http://msdn.microsoft.com/en-us/library/ms178472.aspx

РЕДАКТИРОВАТЬ: Итак, «первый раз» определяется как самый первый запрос ресурса с веб-сайта ASP.NET;soooooo, вопрос не в том, какую страницу или ресурс (в единственном числе) нужно проанализировать и скомпилировать «первый раз» it запрашивается, скорее ASP.NET анализирует и компилирует ВСЕ В ПЕРВЫЙ РАЗ ЛЮБОЙ страницы или ресурсазапрашивается«Повторно анализировать и перекомпилировать» происходит так, как кажется «ленивым» образом: когда происходит изменение в динамически скомпилированном файле, это делает недействительной ранее скомпилированную, кэшированную версию этого файла;это вызывает перекомпиляцию его и всех задействованных ресурсов. СЛЕДУЮЩЕЕ ВРЕМЯ, КОТОРОЕ ЗАПРОСИТ КОД - в зависимости от внесенного изменения может потребоваться перекомпиляция 1-n для всех файлов.

Спасибо @Mass за ссылку

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Относительно второго пункта («переанализирован и перекомпилирован из-за изменения разметки»):

Существует монитор файловой системы, запущенный во время выполнения HTTP.Возможно, вы захотите изучить метод HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory() с помощью Reflector.

На мониторинг влияет параметр реестра FCNMode в

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET (x86)HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ ASP.NET (x64)

1 голос
/ 29 июля 2011

Вы можете найти все ответы, которые вам нужны, по ссылке ниже:

Компиляция по первому запросу

Перекомпиляция при изменении

Вывод компиляции

http://msdn.microsoft.com/en-us/library/ms366723.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...