Мы работаем с сайтом asp.net на IIS6.Мы только что перешли с .Net3.5 на .Net 4.0.В нашем процессе сборки мы используем прекомпиляцию aspnet_compiler te, а также aspnet_merge для объединения сборок.
После того, как мы перешли на .Net 4.0, мы провели тест производительности.Это показало, что версия 4.0 была намного медленнее, чем версия 3.5.
Мы заметили, что для каждого выгружаемого сервера процесс w3wp.exe считывает скомпилированный файл (т.е. resultlistpage.aspx.cf9ca39a.compiled) из /bin каталог веб-сайта.Он не только читает файл .compiled из каталога bin, но также для каждого элемента управления на странице читает соответствующий файл .compiled (например, resultlist.ascx.639c3968.compiled).Это происходит для каждого запроса страницы.
Я использовал Sysinternals Process Monitor, чтобы увидеть это.
Эти файлы aspx и ascx на самом деле являются представлениями MVC2.
Я пытался отключитьПараметр «Убедитесь, что файл существует» для .aspx en .ascx в IIS6, но это не помогло.Также я установил флажок «Кэшировать расширения ISAPI» моего приложения, но безрезультатно.
В нашей версии 3.5 это поведение не отображается.Он просто загружает .compiled файлы один раз, а затем кэширует его.
В отчаянии, как я могу сказать IIS6 не читать .compiled файлы для каждого запроса?
Мы перейдем к IIS7, но не очень скоро.