У меня есть приложение ASP.NET 2.0 (установлено на IIS 6.0 из MSI), которое было скомпилировано как «веб-сайт» и предварительно скомпилировано / упаковано с использованием проекта веб-развертывания в Visual Studio 2005. (Я вставил в просьба к разработчикам рассмотреть возможность перехода на веб-приложение для следующей версии, но оно не изменится для этой версии).
Всякий раз, когда приложение перезагружается (например, вносится изменение в web.config), при первом обращении ASP.NET JIT прикладной программы. Как часть этого, он берет все сборки, необходимые для страницы входа в систему, и компилирует их в собственный код в каталоге Temporary ASP.NET Files 'assembly \ dl3', что занимает от 20 до 60 секунд. Это происходит только при переработке, что случается нечасто, но когда это происходит, загрузка страницы занимает намного больше времени, и я полагаю, что это можно оптимизировать.
По-видимому, необходимо учесть 122 DLL, некоторые из которых являются предварительно скомпилированным кодом, другие являются сторонними компонентами для веб-сайта (например, NHibernate.dll, компоненты отчетности и т. Д.)
Почему он перекомпилирует / повторно JIT все ? Почему он не обнаруживает, что большинство сборок не изменилось, и не пытается их изменить? Могу ли я доказать, что проблема заключается не в пакетной компиляции? (У меня <compilation debug="false"
> установлено в web.config.)
Другие вопросы предполагают, что NGEN может быть полезен, но я читал, что его невозможно использовать в ASP.NET 1.x; мы используем 2.0, и я не могу найти чистый ответ в любом случае.