2013-07-26 2 views
3

Выполняется ли для каждой HTTP-страницы ASP.NET, скомпилированной как раз вовремя (JITting), или когда страница запрашивается в первый раз или при запуске приложения?ASP.NET Как раз вовремя

Я не могу найти ресурс.

+0

Это хороший вопрос, но я не могу поверить, что его не спрашивали раньше - вы искали предыдущие вопросы? – Liath

+0

Является ли классический тег asp необходимым и правильным? –

+0

Возможно [это поможет] (http://stackoverflow.com/questions/3325174/asp-net-page-compilation-process), в частности [ссылка здесь] (http://msdn.microsoft.com/en- us/library/ms178472.aspx) – musefan

ответ

3

ASP.NET автоматически компилирует код приложения и любые зависимые ресурсы первый раз, когда пользователь запрашивает ресурс с веб-сайта.

ASP.NET Compilation Overview

По умолчанию веб-страницы ASP.NET и файлы кода скомпилированы динамически, когда пользователи первого запроса ресурса, например, на странице ASP.NET (.aspx файл), из Интернета сайт. После того как страницы и файлы кода были скомпилированы в первый раз, скомпилированные ресурсы кэшируются, поэтому последующие запросы на одну и ту же страницу чрезвычайно эффективны.

Understanding ASP.NET Dynamic Compilation

1

По умолчанию первый запрос для каждой страницы - см. Understanding ASP.NET Dynamic compilation. Затем он будет перекомпилировать первый раз, когда страница будет исправлена ​​после ее изменения.

Вы можете, однако, указать параметры прекомпиляцию в файле конфигурации

1

Вы можете проверить это самостоятельно.

Создать mypage.aspx в C: \ Inetpub \ Wwwroot каталог и написать это:

<%@ Page language="C#" debug="true" %> 
<html> 
<head></head> 
<%= this.GetType().Assembly.Location %> 
</html> 

Когда вы открываете его в браузере, вы получите что-то вроде этого:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Временный ASP.NET Файлы \ root \ 26676eb7 \ 92c7e946 \ App_Web_ip00zfkv.dll

перейдите по этому адресу, и вы увидите сгенерированные файлы (обратите внимание, что поскольку debug = true указан в Page директива, исходный код не удаляется).

Вы можете создать другой запрос (просто обновить страницу), и вы можете увидеть dll имя не изменяется. Но если вы что-то измените в файле mypage.aspx, то новый dll будет сгенерирован под другим именем.

Смежные вопросы