2010-08-19 1 views
1

Вот как я понимаю компиляцию asp.net. Пожалуйста, исправьте ошибки в моем понимании.Понимание ASP.NET компиляции проектов веб-сайтов

Если я не публикую проект веб-сайта, а просто скопируйте все файлы в веб-каталог, я знаю, что первый визит он компилирует, и поэтому первое посещение немного медленное. С этого момента (если я не обновляю источник), сайт остается скомпилированным правильно (E.G. его не в кеше, который истекает)?

Что делать, если я обновляю источник страницы, каким-то образом ASP.NET обнаруживает изменение и перекомпилирует? Переписывает ли она только одну страницу или помещает все в bin \ MySiteName.dll?

Наконец, если я публикую сайт, я не могу обновить исходный код (aspx yes, но не код за страницами). Это предварительно скопирует сайт, чтобы первая загрузка была быстрой. Сайт вечно компилируется до публикации.

ответ

1

Here's an article, что поможет. Это немного больше, чем вы заявили, но это должно помочь вам.

1

В принципе, я думаю, что у вас это правильно. Единственное, что я вам скажу, это то, что можно предварительно скомпилировать приложение ASP.NET, чтобы первая загрузка была не такой медленной. В основном вы используете aspnet_compiler.exe для этой задачи. См. http://msdn.microsoft.com/en-us/library/bb398860.aspx для получения дополнительной информации, чем вы, возможно, когда-либо захотите.

2

Вы правы, кеш сборки узла веб-сайта становится недействительным всякий раз, когда вы применяете изменение к файлу исходного кода. Как указано в MSDN:

Любые изменения в динамически скомпилированного файл будет автоматически аннулируют кэшированные скомпилированную сборку в файла и запуска перекомпиляции всех пострадавших ресурсов. В следующий раз, когда запрос на будет выполнен, ASP.NET распознает , что код был изменен, и перекомпилирует затронутые ресурсы веб-приложения. не

Насколько я знаю, нет даты, прикрепленную к сборке истекают, если, конечно, он не будет удален (сборка хранится в папке% WINDIR% \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP. NET Files \ name_or_web_site).

Интересное примечание: с автоматической компиляции, очень важно, чтобы оставить отлаживать = ложь внутри файла web.config, как только вы нажимаете ваш веб-сайт проекта для производства. Если вы забудете это, пакетная компиляция будет отключена, и сборка будет сгенерирована для каждой запрашиваемой исходной страницы! Вы можете узнать больше об этом в блоге If broken it is, fix it you should.

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